如何从htaccess中的重写规则中排除主目录/主页?

时间:2015-01-02 02:26:01

标签: php apache .htaccess mod-rewrite

我无法弄清楚如何从重写中排除主页。 换句话说,.htaccess对待" example.com" as" example.com/user/index.php?name ="所以它显示用户特定的内容而不是我的主页。我已经尝试过很多东西,但没有像我预期的那样有效。

RewriteEngine on

 RewriteCond %(REQUEST_FILENAME) !-f
 RewriteCond %(REQUEST_FILENAME) !-d
 RewriteRule ^about/([A-Za-z0-9-]+)/?$ /about/index.php?p=$1 [L]

 RewriteCond %(REQUEST_FILENAME) !-f
 RewriteCond %(REQUEST_FILENAME) !-d
 RewriteCond %{REQUEST_URI} !^/login/?$ [NC]
 RewriteCond %{REQUEST_URI} !^/register/?$ [NC]
 RewriteCond %{REQUEST_URI} !^/about/?$ [NC]
 RewriteRule ^([A-Za-z0-9.]+)/?$ /user/index.php?name=$1 [L]

希望你们明白我的问题是什么。

1 个答案:

答案 0 :(得分:0)

规则看起来很好,正则表达式中的+限定符应该使它不会仅仅匹配/请求。您可以尝试在RewriteEngine On

下面添加此项
RewriteCond %{THE_REQUEST} \ /+(?:index\.php|)($|\ )
RewriteRule ^ - [L]