我在子目录中运行WordPress的(和BuddyPress的插件):奇modrewrite行为
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关于我们页面有一个“漂亮”的网址mydomain.com/mysubdomain/about-us
我也有一个非WordPress的网站在我位于mydomain.com的根目录与以下重写规则:
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的modrewrites与newpage.html重定向冲突。
咨询/建议,不胜感激!
谢谢!
感谢您的回复Jon。这听起来像你不能重定向到一个“漂亮”的网址,所以你应该重定向到?页= 2,是正确的? – user663561 2012-07-20 02:32:05
@ user663561在最后一个规则不重定向。在浏览器的地址栏会仍然说'mydomain.com/newpage.html'但得到什么服务是'/ mysubdomain /?页= 2'。它在内部被重写。没有理由,使之成为漂亮的URL,如果浏览器永远看不到它。 – 2012-07-20 02:34:36
嗨Jon, “..问题是,如果您只是简单地重写URI,那么wordpress控制器可能无法正确处理请求,因此您可能需要重写为未重写的URI ......” 似乎是发生什么事。重定向到未重写的URI似乎工作。 – user663561 2012-07-23 17:07:36