Codeigniter在根目录下,Wordpress在子目录中,但WP默认读取

时间:2015-03-14 23:34:57

标签: wordpress .htaccess codeigniter

我已经在这里和其他地方读过几篇非常相似的问题(this one可能是最接近的)。我们的情况是,我不希望WP成为附加到我们应用程序的博客,而是人们在点击我们的URL时看到的内容。问题当然是Codeigniter,因为它在根中,而WP在/wordpress/中,它的index.php在根中。对于我来说,将WP设置为以root身份读取,而不需要将它的 index.php放在根目录中。

除了将我们的应用程序部分移动到新目录之外的任何想法?在任务关键时刻有大量的用户活动,所以不要愚弄潜在的停机时间,冲突等。基本上我们不想触摸应用程序,如果可能的话,只是让人们没有登录WP的路线没有在URL中看到/ wordpress /的营销网站。

感谢您的任何指示!

1 个答案:

答案 0 :(得分:0)

  

基本上我们不想触摸应用程序,如果可能的话,只需让人们没有登录到WP营销网站的路线而不在网址中看到/ wordpress /。

如果您的主应用处理身份验证,您可能会使用Cookie来存储身份验证令牌。您可以在.htaccess中使用此cookie,以确定如何重写URL。这样的事情应该有效:

RewriteEngine On
RewriteBase /

# if auth cookie is not set, use /wordpress/ routes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_COOKIE} !^.*authcookiename.*$ [NC]
RewriteRule ^(.*)$ wordpress/index.php/$1 [L]

# otherwise, use the codeigniter routes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

有两点需要注意:

  1. 这可能会导致静态资源的wordpress路由出现问题。您可能需要使用一些RewriteConds和Wordpress配置来使其正常工作。
  2. 假设您还没有,您需要编辑config.php,以便:
  3. $config['index_page'] = '';