微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.htaccess 与 css 冲突

如何解决.htaccess 与 css 冲突

我有 1 页

https://domainsanalytics.com/country.PHP

我正在传递类似的值

https://domainsanalytics.com/country.PHP?id=219

我想制作 SEO 友好的网址,例如

https://domainsanalytics.com/country/219

我试图通过这个实现

RewriteRule ^(country)/(\d+)/?$ $1.PHP?id=$2 [L]

但这给我的页面带来了一个错误,例如:https://domainsanalytics.com/country/219

如果我在上面的代码之前添加

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.PHP [NC,L]

那个工作

https://domainsanalytics.com/country

但 404 开启

https://domainsanalytics.com/country/219

我需要帮助以确保两者都能正常工作

    https://domainsanalytics.com/country/219
    and
    https://domainsanalytics.com/country

PS:打开网站时htaccess只有

RewriteRule ^(country)/(\d+)/?$ $1.PHP?id=$2 [L]
RewriteRule ^(tld)/(\d+)/?$ $1.PHP?id=$2 [L]
RewriteRule ^(registrar)/(\d+)/?$ $1.PHP?id=$2 [L]

和截图

http://domainsanalytics.com/

编辑

RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(country)/(\d+)/?$ $1.PHP?id=$2 [L]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(tld)/(\d+)/?$ $1.PHP?id=$2 [L]

RewriteCond %{QUERY_STRING} ^$
RewriteRule ^(registrar)/(\d+)/?$ $1.PHP?id=$2 [L]

那个工作...

解决方法

根据您展示的样品,您可以尝试以下操作吗?在测试您的网址之前,请务必清除浏览器缓存。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(tld|registrar|country)/(\d+)/?$ $1.php?id=$2 [QSA,NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]*)/([^/]*)/?$ $1.php?id=$2 [QSA,L]

JS/CS 重写/重定向: 您可能需要使用 base 标签来修复您的 js 和其他相关资源。如果您使用相对路径链接 js 文件,那么该文件显然会得到 404,因为它正在寻找 URL 路径。例如,如果 URL 路径是 /file/ 而不是 file.html,那么您的相关资源将从 /file/ 加载,这不是目录,而是重写的 html 文件。要解决此问题,请使您的链接成为绝对链接或使用基本标签。在您网页的标题中添加此 <base href="/">,以便您的相关链接可以从正确的位置加载。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。