.htaccess mod_rewrite阻止某些文件被提供

时间:2010-03-09 02:58:31

标签: apache .htaccess mod-rewrite

我已成功使用mod_rewrite按照我的意愿制作网站...但是,我已将“模拟”文件夹迁移到根目录并在为网站实施这些规则时,某些文件不是在^ pdfs文件夹中提供:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

(旧目录)

RewriteRule ^redesign_03012010/mock-up/([^/]+)/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1&section=$2 [PT]
RewriteRule ^redesign_03012010/mock-up/([^/]+)$ /redesign_03012010/mock-up/index.php?page=$1 [PT,L]

(新目录)

RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]

... ^ pdfs(aka / pdfs /)没有提供文件......有什么建议吗?

1 个答案:

答案 0 :(得分:0)

[L]标志要求mod_rewrite停止处理当前的规则集,而不是整个.htaccess文件,因此以下行不能满足您的需求:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

您需要排除使用mod_rewrite处理现有文件。试试这个:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)$ /index.php?test=1&page=$1&section=$2 [PT]
RewriteRule ^([^/]+)$ /index.php?test=1&page=$1 [PT,L]