2010-09-24 138 views
1

我有以下的htaccess允许在URL中没有文件扩展名:的.htaccess文件夹和文件名冲突改写

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

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

+0

引领你去向何方?COM /图片/? – jatt 2010-09-24 11:28:45

+0

而你说过你已经尝试删除'RewriteCond%{REQUEST_FILENAME}!-d'? – 2010-09-26 07:48:49

+0

嘿,我有同样的问题,你有没有找到解决这个问题的方法? – Rob 2012-03-30 03:40:11

回答

0

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

有了这两条线,你说如果测试字符串(在你的案件“图像”)不是一个目录,而不是一个文件,重写它images.php。现在,既然你有图像目录,第二个规则不满意,图像重写到images.php内部。

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

+0

我会怎样改变htacces条件?我已经尝试了-f和-d的每个组合,并将它们移除并倒转(!),并且仍然首先查找文件夹 – slexAtrukov 2010-09-24 11:50:34

0

我觉得如果你的规则之前添加此规则假设工作... ...(但我没有测试)

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

由于Tim Stone建议,去掉RewriteCond %{REQUEST_FILENAME} !-d线将解决这个问题。然后

你的规则应该如下所示:

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