HTACCESS将所有请求重定向到index.php,除了sub文件夹



我在我的域的根部安装了一个CMS,其中htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

这需要照顾友好的URL将所有内容都重定向到index.php。我的问题是我有一个具有另一个CMS的子文件夹。我需要将请求重定向到适当的文件夹,而不是index.php。

我尝试了以下内容,但似乎不起作用

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond $1 !^(sub-folder)
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

任何人可以帮忙吗?

谢谢

如果请求URI匹配sub文件夹

,则应正确验证
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !/subfolder
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

在任何情况下,前两个重新写入的意思是:如果请求文件名不是文件或目录。这意味着,如果您引用的文件已输入子文件夹,并且子文件夹已进入您的DocRoot,则无需执行任何操作。

如果仍然无法正常工作,启用日志可以帮助您:

RewriteLog "/web/logs/mywebsite.rewrite.log"
RewriteLogLevel 9
RewriteEngine On

避免在生产中登录

使用高价值来级别将大大减慢您的Apache服务器!仅在调试中以大于2的级别使用重写日志文件!

相关内容

最新更新