如何配置apache以允许目录的重写规则?

时间:2015-02-16 09:39:12

标签: php apache mod-rewrite

我在htaccess中有一些配置:

RewriteEngine On
RewriteRule ^(.*)$ /index.php [L,NC,QSA]

所有网址都重定向到/index.php

但如果文件夹存在,则转到文件夹,而不是/index.php

为什么?

我尝试了这个解决方案:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule . index.php [QSA,L]

但这就像之前的例子一样转到了目录=(

3 个答案:

答案 0 :(得分:0)

试试这个

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php

或者

RewriteEngine On
RewriteCond %{REQUEST_URI} !-f
RewriteRule (.*)  index.php [QSA]

答案 1 :(得分:0)

使用类似的东西:

#turn rewrite engine on
RewriteEngine On

#specify your base
RewriteBase /

#make sure, your index.php won't be rewritten
RewriteRule ^index.php - [L]

#rewrite everything else
RewriteRule ^(.*)$ index.php?para=$1 [QSA,L]

答案 2 :(得分:0)

  

但如果文件夹存在,则转到文件夹,而不是/index.php

尝试停用MultiViews - 这通常会干扰此类情况。

Options -MultiViews

http://httpd.apache.org/docs/2.2/mod/core.html#options
http://httpd.apache.org/docs/2.2/mod/mod_negotiation.html#multiviews