Мод ReWrite - Как вы предоставляете исключение для определенного каталога? - PullRequest
0 голосов
/ 28 апреля 2011

Есть несколько каталогов, которые я бы хотел игнорировать 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 голосов
/ 28 апреля 2011

Я считаю, что, как и во всех директивах apache, вы можете просто обернуть его в тег <DirectoryMatch> и указать, какие каталоги должны быть включены соответствующим образом:

<DirectoryMatch "[^NotThisDir]">
    // all the Rewrite rules that you want to apply
    // to everything except the NotThisDir directory
</DirectoryMatch>
0 голосов
/ 28 апреля 2011

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

остальные правила идут ниже этой строки

...