htaccess 排除特定目录

htaccess to exclude a specific directory

我的站点根目录下有一个 htaccess,如下所示:

RewriteEngine On

RewriteRule \.php$ - [L,NC]

RewriteRule ^(?:favicon\.ico|(?:index|custom500|custom404)\.html)$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ index.php?source=[=10=] [L,QSA]

我希望它忽略那些包含特定文件夹的 url folder1。网址将类似于:

https://mycooldomain.com/folder1/api/rest/... //something else here

我已经检查过 ,但我似乎无法将其应用到我的情况中。

像这样:

RewriteEngine On

# ignore request URLs that start with /folder1/
RewriteCond %{THE_REQUEST} \s/+folder1/ [NC]
RewriteRule ^ - [L]

RewriteRule \.php$ - [L,NC]

RewriteRule ^(?:favicon\.ico|(?:index|custom500|custom404)\.html)$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ index.php?source=[=10=] [L,QSA]

替代@anubhava 的回答...在您的.htaccess 文件中需要 忽略的唯一规则是最后一条。因此,您可以在最后一条规则中添加一个条件,以排除 URL-以 /folder1/.

开头的路径

例如:

RewriteCond %{REQUEST_URI} !^/folder1/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .+ index.php?source=[=10=] [L,QSA]

!^/folder1/ 上的 ! 前缀否定正则表达式,因此当 匹配时它是成功的。 IE。当 URL-path not/folder1/.

开头时