.htaccess 与 css 冲突

.htaccess conflict with css

我有 1 页

https://domainsanalytics.com/country.php

我正在传递像

这样的值
https://domainsanalytics.com/country.php?id=219

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

https://domainsanalytics.com/country/219

我试图通过这个来完成

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

但这让我的页面出现错误,例如:https://domainsanalytics.com/country/219

如果我在上面的代码前加上,

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ .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+)/?$ .php?id= [L]
RewriteRule ^(tld)/(\d+)/?$ .php?id= [L]
RewriteRule ^(registrar)/(\d+)/?$ .php?id= [L]

和截图

编辑

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

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

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

那行得通...

根据您展示的示例,请您尝试以下操作。请确保在测试您的 URL 之前清除您的浏览器缓存。

RewriteEngine On

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

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

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