htaccess删除文件夹的文件ext

时间:2012-04-20 11:15:09

标签: php apache .htaccess mod-rewrite

我已经尝试过查看其他教程和示例,但没有什么比我的情况更合适。我的htaccess文件如下所示:

RewriteEngine on

rewritecond %{http_host} ^example.com [nc]
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !\..+$
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) http://www.example.com/$1/ [R=301,L]

RewriteRule ^([^/\.]+)/?$ index.php?page=$1 [L]
RewriteRule ^view/([^/]+)/([^/]+)/?$ index.php?page=view&id=$1&title=$2

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([a-zA-Z0-9]+)
RewriteRule ^([a-zA-Z0-9]+)$ /%1/? [R=301,L]

ErrorDocument 404 /404

我正在使用PHP并需要重写/index.php?page=page&moreparamaters=1

但我在服务器上还有一个名为/ admin /的文件夹,我想从此文件夹中的文件中删除.php扩展名,以便:

/admin/lol.php变为/admin/lol/

我有很多这些文件,所以我不能单独添加每个文件。如何在不影响index.php重写的情况下执行此操作?

由于

1 个答案:

答案 0 :(得分:2)

你必须反思。假设您的所有文件都直接放在文件夹中(意思是没有子文件夹),这将起作用:

RewriteRule ^admin/([^\/]*)? /admin/$1.php [L,R]

在您的链接中,您可以编写/ admin / lol /或/ admin / lol,两者都将被重定向到/admin/lol.php