【发布时间】:2010-12-05 11:46:34
【问题描述】:
我有一个包含原版 Wordpress 安装的 CakePHP 站点。它住在/app/webroot/blog/。我遇到的问题很奇怪。
我已通过 mod rewrite 将站点配置为将所有请求重定向到 /app/webroot/blog 到 /blog/。原因是当用户通过app/webroot 路径访问它时,Wordpress 要么抛出错误,要么不显示任何内容,如果您在/blog/ 访问它,它就可以正常工作。如果用户尝试访问 /blog 而没有尾部斜杠,它还会将用户重定向到 /app/webroot/blog,因此我们也添加了这一点。以下是我们用来完成此操作的 mod_rewrite 规则:
RewriteRule ^blog$ blog/ [L]
RewriteRule ^app/webroot/blog/(.*)$ blog/$1 [L]
当用户尝试访问 Wordpress 的管理部分但未通过身份验证时,它会将他们发送到 /wp-login.php 页面并发送一个名为 redirect_to 的查询字符串参数,其中包含用户最初尝试访问的 URL在被要求进行身份验证之前。此 URL 包含完整路径 (/app/webroot/blog/...) 而不是仅仅转到 /blog,即使原始请求是 /blog 中的页面。如果用户成功通过身份验证,则将用户发送回登录页面,就好像什么都没发生一样(没有错误消息等)。
我认为上面列出的第二个 mod_rewrite 规则可以解决问题,但似乎并非如此。
我希望我已经彻底解释了这一点,如果我能提供我可能忘记的其他信息,请告诉我。谢谢!
【问题讨论】:
标签: wordpress .htaccess mod-rewrite cakephp