仅在顶级重写规则

时间:2014-06-27 15:53:11

标签: apache .htaccess mod-rewrite url-rewriting

所以,我第一次尝试重写规则。而且因为我正在逃亡。

当我输入www.mydomain.com/index.php?name=gallery时,它会显示我的图库。通过重写,我可以将网址www.mydomain.com/gallery链接到该文件。这是代码:

RewriteEngine On
RewriteRule    ^([A-Za-z0-9-]+)/?$    index.php?name=$1    [NC,L]

我现在的问题是我无法访问任何子文件夹(例如mydomain.com/admin),因为重写规则将我发送给... index.php?name = admin。

所以我的问题是,是否有任何方法可以使重写规则仅适用于我的root文件夹,或者是否有任何方法可以将特定文件夹从规则中删除?

祝你好运!

1 个答案:

答案 0 :(得分:0)

您需要一个条件来跳过重写中的现有文件和目录。

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([A-Z0-9-]+)/?$ index.php?name=$1 [NC,QSA,L]