【发布时间】:2014-05-18 06:06:38
【问题描述】:
我在 localhost/site 有 CodeIgniter,在 localhost/site/blog 的子目录中有 Wordpress。
每个都工作正常 - 除了我希望站点目录中的某些 url 指向 Wordpress 子目录。
我将它们转发到站点文件夹的 .htaccess 中,就像这样(我是重写菜鸟):
RewriteEngine On
RedirectMatch Permanent ^/site/about/? /site/blog/about
# Do not enable rewriting for files or directories that exist
RewriteCond $1 !(^site/blog/)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# For reuests that are not actual files or directories,
# Rewrite to index.php/URL
RewriteRule ^(.*)$ index.php/$1 [PT,L]
问题是localhost/site/about/总是转发到
localhost/site/blog/about/ 并更改地址栏。当用户访问localhost/site/about 时,我需要提供localhost/site/blog/about/ 的页面。
为了查看localhost/site/blog/about/ 的页面,我必须添加 RewriteBase 指令并更改博客子目录中以下 .htaccess 中的 RewriteRule:
RewriteEngine On
RewriteBase /site/blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /site/blog/index.php [L]
如果没有这个添加,localhost/site/blog/about 的页面会显示 CodeIgniter 404 错误页面。 (RewriteBase 实际上似乎没有效果)。
最终,该网站将托管在 www.site.com,而 Wordpress 安装将在 www.site.com/blog。
我尝试了很多不同的解决方案,但都没有奏效。任何帮助表示赞赏。
【问题讨论】:
标签: wordpress .htaccess codeigniter mod-rewrite