阻止 WordPress 使用 .htaccess 劫持 CodeIgniter URL

阻止 WordPress 使用 .htaccess 劫持 CodeIgniter URL

WordPress 安装在根网站目录中:

/var/www/html/

CodeIgniter 安装在子目录中:

/var/www/html/ciapp/

当我访问http://www.example.com/ciapp/主 CI 控制器时,可以正确访问和执行。

但是,如果我尝试像这样直接访问我的主要 CI 控制器:

http://www.example.com/ciapp/main/

我得到了 WordPress 的 404 页面。此外,如果我尝试访问主控制器的某个功能,如下所示:

http://www.example.com/ciapp/main/myfunction/

我也收到相同的 404 页面。

因此,基本上,WordPress/ciapp/默认会忽略该目录,但不会忽略添加到该目录的任何 URL 请求。这是我的 WordPress .htaccess:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

那么,我需要向 WordPress .htaccess 添加什么样的 RewriteCond 才能忽略 /ciapp/ 目录以及使用该目录的任何 URI 请求?

我尝试过这个:

RewriteCond %{REQUEST_URI} !^/?ciapp

但似乎并没有什么效果。

答案1

如果 url == 其中任何一个,请不要使用 index.php 来提供它们。

RewriteCond $1 !^(index\.php|css|img|forums|ciapp|robots\.txt)

否则,使用 index.php

RewriteRule ^(.*)$ index.php/$1 [L] 

如果 url == ciapp/* ,则使用 ciapp/index.php 为其提供服务。

RewriteRule ^(.*/)?ciapp/(.*) /ciapp/index.php/$1 [L]  

相关内容