我在我的 .htaccess 文件中有一些重写,看起来像这样(我已经更改了文件/var 名称,但基本相同):
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page/([^/\.]+)/pageno=([^/\.]+)?$ page.php?slug=$1&pageno=$2
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page/([^/\.]+)/?$ page.php?slug=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page/([^/\.]+)/([^/\.]+)/pageno=([^/\.]+)?$ page.php?slug=$1&something=$2&pageno=$3
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^page/([^/\.]+)/([^/\.]+)/?$ page.php?slug=$1&something=$2
当我访问其中一个重写的 URL 时,例如 www.mydomain.com/page/something 中的正确内容 page.php?slug=something 显示在大多数浏览器中,除了旧版本的 Internet Explorer,但真正的问题是重写后的 URL 返回一个 404 标头代码(这可能是某些浏览器不显示内容而其他浏览器选择显示内容的原因)。
我有其他重写似乎有效并返回 200 OK 标头,例如:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/\.]+)-some-page-([^/\.]+).html?$ some-page.php?pageno=$2&myvar=$1
我能看到的唯一区别是上面的重写包含一个假的 .html 扩展名,所以不确定这是否有任何不同。
任何帮助将不胜感激!
非常感谢