htaccess重写URL没有.php扩展到文件

我有一个网站,使用osCommerce所有的页面可以直接访问http://www.example.com/pagename.php ,但现在我想调整htaccess文件,以便它可以支持http://www.example.com/username ,然后redirect到http://www.example.com/account.php?id=username ,而其他网页仍然可以使用旧的方式访问。

这意味着如果htaccess检测到URL没有任何扩展名,那么它将被redirect到http://www.example.com/account.php?id=username

谢谢!

你只需要一个规则:

 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/.]+)/?$ /account.php?id=$1 [L,QSA] 

您可以使用此代码从URL中删除PHP扩展:

 Options +FollowSymLinks -MultiViews # Turn mod_rewrite on RewriteEngine On RewriteBase / ## hide .php extension snippet # This will redirect you from http://www.example.com/username.php to # http://www.example.com/username externally RewriteCond %{THE_REQUEST} ^[AZ]{3,}\s([^.]+)\.php [NC] RewriteRule ^ %1 [R,L] # This will redirect you from http://www.example.com/username to # http://www.example.com/username internally RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*?)/?$ $1.php [L]