托管在一个子目录(rails应用程序)中的Wordpress具有wp-admin url而没有子目录

时间:2015-05-13 18:52:27

标签: ruby-on-rails wordpress apache .htaccess

该博客位于http://www.example.com/blog。登录网址可在http://www.example.com/blog/wp-login.php访问。但登录后,浏览器会在网址字段中简要显示http://www.example.com/blog/wp-admin/,然后重定向,最后在网址http://www.example.com/wp-admin/显示信息中心。

问题

现在,wordpress仪表板中的所有网址(例如:帖子,网页,设置等)的格式均为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 app的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 app的公共文件夹中没有.htaccess文件。上面提到的htaccess文件出现在wordpress文件夹的根位置。

1 个答案:

答案 0 :(得分:0)

您需要更改数据库URL - WordPress将URL存储在数据库的许多地方。请查看https://interconnectit.com/products/search-and-replace-for-wordpress-databases/,了解如何查找/替换。否则你也可以进入数据库并在wp_options表中进行更改,这可能足以让你进入。了解如何更改网址:https://codex.wordpress.org/Changing_The_Site_URL并尝试像你一样改变从错误的到正确的,它可能会解决问题。