.htaccess文件夹和文件名冲突在url重写

时间:2010-09-24 11:22:18

标签: .htaccess

我有以下htaccess以允许url中没有文件扩展名:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php

我的问题是我有一个名为images.php的文件和一个名为images的文件夹,所以当我使用url:.com / images时,它会将我带到images文件夹,其中:.com / contact - 带我到正确的页面。

3 个答案:

答案 0 :(得分:0)

RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d

使用这两行,您可以说测试字符串(在您的情况下为'images')不是目录而不是文件,请将其重写为images.php。现在,由于你有图像目录,第二条规则不满意,图像被重写为images.php internaly。

更改文件夹名称,更改脚本名称或更改.htaccess规则和条件。

答案 1 :(得分:0)

我认为如果你在你的规则之前加上这条规则就可以起作用......(但我没有测试它)

RewriteRule ^images/(.*)$    images/$1.php [L]

答案 2 :(得分:0)

根据Tim Stone建议,删除RewriteCond %{REQUEST_FILENAME} !-d行将解决问题。

您的规则应如下所示:

Options +FollowSymlinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.php