【问题标题】:Codeigniter - Rewrite to subdirectory containing wordpress installation in .htaccessCodeigniter - 重写到 .htaccess 中包含 wordpress 安装的子目录
【发布时间】: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


    【解决方案1】:

    site/about/ 总是转发到site/blog/about/ 的原因是因为你已经告诉它:RedirectMatch Permanent ^/site/about/? /site/blog/about
    要让site/about/ 留在网址栏中,但显示来自site/blog/about/ 的内容,应该这样做:

    RewriteEngine On
    RewriteRule ^site/about/$ /site/blog/about/ [L]
    

    【讨论】:

    • 感谢您的回复。使用上面的 RewriteRule,CodeIgniter 404 错误页面显示在 site/about/。
    猜你喜欢
    • 2014-03-29
    • 2011-01-31
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 2017-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多