0

我在我的 .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 扩展名,所以不确定这是否有任何不同。

任何帮助将不胜感激!

非常感谢

4

1 回答 1

0

添加

 header("HTTP/1.0 200");

在你包含标题之后,就像

define('WP_USE_THEMES', false);
require($_SERVER['DOCUMENT_ROOT'] . '/blog/wp-blog-header.php');
header("HTTP/1.0 200");
于 2013-09-10T11:39:52.543 回答