2

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

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

谢谢!

4

2 回答 2

6

你只需要一条规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)/?$ /account.php?id=$1 [L,QSA]
于 2013-09-17T06:57:29.833 回答
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]
于 2013-09-17T03:39:11.150 回答