【发布时间】:2015-05-14 14:32:15
【问题描述】:
该博客位于http://www.example.com/blog。登录网址可通过http://www.example.com/blog/wp-login.php 访问。但是一旦登录,浏览器会在 url 字段中短暂显示http://www.example.com/blog/wp-admin/,然后重定向,最后在 url http://www.example.com/wp-admin/ 处显示仪表板。
问题
现在,wordpress 仪表板中的所有 url(例如:帖子、页面、设置等)都是 http://www.example.com/wp-admin/xxx.php 的形式,而不是所需的 http://www.example.com/blog/wp-admin/xxx.php。当我单击这些链接中的任何一个时,请求会转到引发错误的 rails 应用程序,因为它显然不知道此 wp-admin 路径。
我在 wordpress 的wp-config.php 文件中设置了以下内容:
define('WP_HOME','http://www.example.com/blog');
define('WP_SITEURL','http://www.example.com/blog');
rails 应用的 apache conf 文件有这个反向代理设置:
ProxyPass /blog http://www.example.com:8080
ProxyPassReverse /blog http://www.example.com:8080
(是的,wordpress 是在另一个端口监听的)
这是我在 wordpress 根目录中的.htaccess 文件:
Options +FollowSymlinks
RewriteEngine on
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
混乱
我对 htaccess 的工作原理知之甚少。但疯狂的是,这是基于另一个应用程序(rails+wp),它使用这些完全相同的设置。
工作和不工作的应用程序之间的唯一区别(上图)是,工作站点的根 URL 和博客 URL 中没有 www。可以在这里玩任何一手牌吗?
非常感谢任何帮助,因为我已经为此苦苦挣扎了数周。
如果您需要,我很乐意提供更多详细信息。
PS:rails 应用的公共文件夹中没有.htaccess 文件。上面提到的 htaccess 文件位于 wordpress 文件夹的根位置。
【问题讨论】:
标签: ruby-on-rails wordpress apache .htaccess