使HTACCESS不适用于某些子文件夹

时间:2015-06-04 15:01:23

标签: php apache .htaccess mod-rewrite

我正在将此htaccess用于我的应用程序。

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

我将在浏览器中输入任何URL,如果相应的文件不存在,则会打开index.php。

问题是我在同一个域上安装了许多这样的应用程序。

例如,root包含index.php文件和上面的htaccess。

我还有/ store,它包含一个index.php文件和一个像上面这样的htaccess,但是当我访问/ store / something时它会打开root的index.php(而不是正确的/ store / index)。 PHP

如何解决这个问题(如何使root的htaccess不覆盖/ store的htaccess)?谢谢!

1 个答案:

答案 0 :(得分:3)

您可以使用跳过目录规则来跳过所有目录:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# skip index.php and some directories
RewriteRule ^(store/|site1/|site2/|index\.php$) - [NC,L]

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