0

我在子目录中运行 Wordpress(和 buddypress 插件):

mydomain.com/mysubdomain/

我的modrewrites如下:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mysubdomain/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mysubdomain/index.php [L]
</IfModule>

一切都按预期工作。例如,位于 mydomain.com/mysubdomain/?page=2 的“关于我们”页面有一个“漂亮”的 URL mydomain.com/mysubdomain/about-us

我在 mydomain.com 的根目录中也有一个非 wordpress网站,其重写规则如下:

RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).mydomain.com [NC]
RewriteRule ^newpage\.html$ http://mydomain.com/mysubdomain/about-us [NC,L]

这会将http://mydomain.com/newpage.html重写为http://mydomain.com/mysubdomain/about-us的页面- 但是,这会显示 Wordpress 的 404 页面未找到错误。(浏览器中的网址正确: http: //mydomain.com/newpage.html

由于显示了 Wordpress 404 页面,这表明问题在于 Wordpress 的 modrewrite 与 newpage.html 重定向冲突。

非常感谢帮助/建议!

谢谢!

4

1 回答 1

0

您的规则似乎没有按照您的描述进行:

RewriteCond %{HTTP_HOST} ^([a-z0-9-]+).mydomain.com [NC]
RewriteRule ^newpage\.html$ http://mydomain.com/mysubdomain/about-us [NC,L]

会将浏览器重定向http://mydomain.com/mysubdomain/about-us,这与似乎正在发生的事情不一致。问题是,如果您只是重写 URI,wordpress 控制器可能无法正确处理请求(对此不确定,这只是一个猜测),因此您可能需要重写为未重写的 URI:

RewriteRule ^newpage\.html$ /mysubdomain/?page=2 [NC,L]
于 2012-07-18T20:35:12.967 回答