我在子目录中运行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的“关于我们”页面有一个&#34;漂亮的&#34; 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&#39;找不到404页面错误。 (浏览器中的网址是正确的:http://mydomain.com/newpage.html)
自Wordpress 404页面显示以来,这表明问题出在Wordpress&#39; modrewrites与newpage.html重定向冲突。
帮助/建议非常感谢!
谢谢!
答案 0 :(得分: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,而{{3}}与正在发生的事情不符。问题是wordpress控制器可能无法正确处理请求,如果你只是重写URI(不确定这个,这只是一个猜测),所以你可能需要重写到未重写的URI:
RewriteRule ^newpage\.html$ /mysubdomain/?page=2 [NC,L]