我有一个使用osCommerce的网站,可以使用http://www.example.com/pagename.php
直接访问所有页面,但现在我想调整htaccess文件,以便它可以支持http://www.example.com/username
,然后重定向到{ {1}},而其他网页仍然可以使用相同的旧方式进行访问。
这意味着如果htaccess检测到该URL没有任何扩展名,那么它将重定向到http://www.example.com/account.php?id=username
。
谢谢!
答案 0 :(得分:6)
您只需要一条规则:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)/?$ /account.php?id=$1 [L,QSA]
答案 1 :(得分:3)
您可以使用此代码从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} ^[A-Z]{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]