Mod ReWrite - 如何为特定目录提供例外?

时间:2011-04-27 23:47:07

标签: .htaccess mod-rewrite

我希望ModRewrite忽略几个目录。这是如何完成的?现在,如果我尝试创建一个新的子目录,并在其中放置一个index.html文件并显式调用它,但是如果我只是点击目录,索引文件没有加载,我认为它在下面的代码中。

这是htaccess文件

#php_value upload_max_filesize      32M
RewriteEngine On

RewriteCond %{HTTP_HOST} programresidency\.com$
RewriteRule (.*) http://www.programresidency.org/$1?fr=residency.com [L,R=302]

RewriteCond %{HTTP_HOST} programresidency\.net$
RewriteRule (.*) http://www.programresidency.org/$1?fr=programresidency.net [L,R=302]

RewriteRule about-the-residency/professional-development.php about/professional_development.html [L,R=302]
RewriteRule about-the-residency/placement-process.php about/placement_process.html [L,R=302]
RewriteRule about-the-residency/about-education-reform.php about/education_reform.html [L,R=302]
RewriteRule become-a-resident/selection-criteria.php become_a_resident/selection_criteria.html [L,R=302]
RewriteRule become-a-resident/selection-process.php become_a_resident/selection_process.html [L,R=302]
RewriteRule summer-residency/selection-process.php become_a_resident/summer_opportunities.html [L,R=302]
RewriteRule about-residents-alumni/alumni.php student/alumni/overview.html [L,R=302]
RewriteRule about-residents-alumni/resident-experiences.php student/experiences.html [L,R=302]
RewriteRule about-residents-alumni/day-in-the-life.php student/day_in_life.html [L,R=302]
RewriteRule about-residents-alumni/2007/ student/2007-2009.html [L,R=302]
RewriteRule about-residents-alumni/2008/ student/2008-2010.html [L,R=302]
RewriteRule information-sessions/ events.html [L,R=302]
RewriteRule newsletters/?$ news/newsletter.html [L,R=302]
RewriteRule media-center/press-releases.php news/press/index.html [L,R=302]
RewriteRule media-center/articles.php news/articles/index.html [L,R=302]
RewriteRule faq/?$ faq.html [L,R=302]
RewriteRule index.php index.html [L,R=302]

# we skip all files with .something
RewriteCond %{REQUEST_URI} \..+$
RewriteCond %{REQUEST_URI} !\.html$
RewriteCond %{REQUEST_URI} !\.org
RewriteCond %{REQUEST_URI} !\.xml$
RewriteRule .* - [L]

# we check if the .html version is here (caching)
RewriteCond %{REQUEST_FILENAME} !-f

#Dev Apache 2.x
RewriteBase /
RewriteRule !\.(js|ico|gif|jpg|png|css|php)$ hello.php

2 个答案:

答案 0 :(得分:0)

RewriteRule ^(first_dir | second_dir | third_dir) - [L]

其余规则低于此行

答案 1 :(得分:0)

我相信,与所有apache指令一样,您可以将其包装在<DirectoryMatch>标记中,并根据需要指定要包含的目录:

<DirectoryMatch "[^NotThisDir]">
    // all the Rewrite rules that you want to apply
    // to everything except the NotThisDir directory
</DirectoryMatch>