在.htaccess中对RewriteRule进行例外处理

时间:2014-01-25 21:46:38

标签: .htaccess exception mod-rewrite

这是我的.htaccess文件内容

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ main/    [L]
    RewriteRule  (.*) main/$1 [L]
</IfModule>

这是我的目录结构

www
 |- ads
 |- main
 |- .htaccess

使用此配置,所有网站前(http://www.sitename.com)传入链接都将转到子目录 main 上的index.html。
现在,我想在例外(http://www.sitename.com/ads)之前做一个例外,重定向到子目录 ads 。 我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:1)

你有2个解决方案:

在其他人之前为“广告”添加规则

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^ads$ ads/ [L]
    RewriteRule  ^$ main/    [L]
    RewriteRule  (.*) main/$1 [L]
</IfModule>

或者不要为现有目录重写

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ main/    [L]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule  (.*) main/$1 [L]
</IfModule>