mod_rewrite不会删除具有其他重写规则的文件扩展名

时间:2011-02-24 16:44:49

标签: .htaccess mod-rewrite

我的.htaccess文件中有以下mod_rewrite:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]+)$ index.php?ID=$1 [QSA,NC,L,R]

上面的代码有效,但问题是我网站上的几个页面链接到没有扩展名的文件,因为我们原来的.htaccess文件删除了每个请求的所有扩展名。我的网站建立在PHP之上。最终,我想完全按原样使用上面的规则,但最后,我想从每个请求中删除文件扩展名(.php)。

这可能吗?

1 个答案:

答案 0 :(得分:1)

试试这个

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !^index.php
RewriteRule ^(.*)\.php$ $1 [NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-zA-Z]+)$ index.php?ID=$1 [QSA,NC,L,R]