将文件显示为URL中的目录

时间:2013-08-20 22:36:48

标签: apache .htaccess

我希望有一个目录,其中的每个文件都可以像访问目录一样(从用户,URL的角度来看)。例如,如果我有:

users.php
admin.php
otherpage.php

我希望用户能够输入http://mysite.com/users/来获取users.php

我听说过这个可以做到,但我似乎无法弄明白。

1 个答案:

答案 0 :(得分:1)

只要您更改链接以使它们看起来像:http://mysite.com/users/(请注意末尾的斜杠),那么您需要在文档根目录中的htaccess文件中使用它:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/([^/]+)/$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]+)/$ /$1.php [L]

为了防止直接访问这些php文件:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+)\.php
RewriteRule ^ /%1/ [L,R=301]