![Apache Mod Rewrite - 排除文件夹和子文件夹,但一个子文件夹除外](https://linux22.com/image/669785/Apache%20Mod%20Rewrite%20-%20%E6%8E%92%E9%99%A4%E6%96%87%E4%BB%B6%E5%A4%B9%E5%92%8C%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%8C%E4%BD%86%E4%B8%80%E4%B8%AA%E5%AD%90%E6%96%87%E4%BB%B6%E5%A4%B9%E9%99%A4%E5%A4%96.png)
我有一个 Mod_Rewrite 设置,如下所示:
RewriteCond %{REQUEST_FILENAME} !^/www/live/site.name/app/public/(/forms/|/crm/)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php [L]
路由所有请求 - 除 /forms/ 和 /crm/ 文件夹之外,通过加载框架/路由等的 index.php 文件。
但是,现在我必须允许 /forms/apply/ 也被路由到 index.php - 但 /forms/ 中的任何其他内容都应该继续被忽略。
有什么建议么?
答案1
您可以使用 OR 条件:
RewriteCond %{REQUEST_FILENAME} ^/www/live/site\.name/app/public/forms/apply/ [OR]
RewriteCond %{REQUEST_FILENAME} !^/www/live/site\.name/app/public/(forms/|crm/)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ %{DOCUMENT_ROOT}/index.php [L]
顺便说一下.
需要转义,并且你/
在 /forms/ & /crm/ 中还有更多