htaccess 忽略现有文件夹的目录和子目录
htaccess ignore directory and subdirectories of existing folder
我有以下结构
- .htaccess
- cms
- other_cms
-- xyz
在 .htaccess
中,我有很多重写规则,我想忽略 /other_cms
。
我在 .htaccess 之上添加了以下内容
RewriteEngine On
RewriteRule ^other_cms/ - [L]
RewriteRule ^other_cms/test/ - [L]
RewriteRule ^other_cms(/.*)?$ - [L,NC]
RewriteCond %{REQUEST_URI} ^other_cms/(.*)$
RewriteRule ^.*$ - [L]
我的目标是 /other_cms
的每个子目录(无论它是否真的存在)和 /other_cms
本身都被根目录中的 .htaccess
文件忽略。
我还尝试为每个规则添加条件:
RewriteCond %{REQUEST_URI} !^other_cms(/.*|)$
当我打开 /other_cms/test
时,它仍然调用所有规则并应用 /cms
的 404。
我已将 .htaccess 文件添加到 /other_cms
,包括 RewriteEngine Off
,但我想这从未被读取过。
我做错了什么?
我在根 .htaccess 文件的顶部使用以下内容解决了它:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^other_cms/(.+)$ /other_cms/index.html?u= [NC,QSA,L]
我删除了 other_cms/
文件夹中的 .htaccess 文件。
这确保它使用我的子文件夹的 index.html
文件。
我有以下结构
- .htaccess
- cms
- other_cms
-- xyz
在 .htaccess
中,我有很多重写规则,我想忽略 /other_cms
。
我在 .htaccess 之上添加了以下内容
RewriteEngine On
RewriteRule ^other_cms/ - [L]
RewriteRule ^other_cms/test/ - [L]
RewriteRule ^other_cms(/.*)?$ - [L,NC]
RewriteCond %{REQUEST_URI} ^other_cms/(.*)$
RewriteRule ^.*$ - [L]
我的目标是 /other_cms
的每个子目录(无论它是否真的存在)和 /other_cms
本身都被根目录中的 .htaccess
文件忽略。
我还尝试为每个规则添加条件:
RewriteCond %{REQUEST_URI} !^other_cms(/.*|)$
当我打开 /other_cms/test
时,它仍然调用所有规则并应用 /cms
的 404。
我已将 .htaccess 文件添加到 /other_cms
,包括 RewriteEngine Off
,但我想这从未被读取过。
我做错了什么?
我在根 .htaccess 文件的顶部使用以下内容解决了它:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^other_cms/(.+)$ /other_cms/index.html?u= [NC,QSA,L]
我删除了 other_cms/
文件夹中的 .htaccess 文件。
这确保它使用我的子文件夹的 index.html
文件。