当url指向现有文件夹时,不会调用htaccess

时间:2010-02-12 01:50:43

标签: php .htaccess mod-rewrite apache2

我在Windows 7上运行zend服务器。 我正在使用jooml的htaccess:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]

RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]

RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})

RewriteRule ^(.*)$ index.php [F,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/index.php
RewriteCond %{REQUEST_URI} (/|\.php|\.html|\.htm|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule (.*) index.php
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]

当我打电话给这个网址时: http://localhost/ABC/ 数据已重定向到index.php

但如果我正在创建文件夹ABC,则服务器显示ABC文件夹内容,而不是将数据重定向回index.php。

如何防止这种情况,我希望所有调用数据都被定向到index.php?

由于

2 个答案:

答案 0 :(得分:0)

这两行

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

从规则中排除现有文件和目录。 删除它们,你应该没事。

答案 1 :(得分:0)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ index.php?$1

如果文件不存在,上面的代码会将所有内容重定向到index.php?