使用.htaccess路由友好网址

时间:2015-12-30 17:02:55

标签: .htaccess mod-rewrite

我正在尝试将显示如下www.example.com/profile/1的网址路由到包含参数www.example.com/profile?user=1的以下页面。我的.htaccess中有以下RewriteRule,但路由无效。有人能告诉我我做错了吗?

RewriteEngineOn
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/profile/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+) /profile?user=$1 [L,QSA]

我尝试将最后RewriteRule切换到不同的网址,但到目前为止还没有运气。我可能正在监督一个小问题,有人可以帮助我。

1 个答案:

答案 0 :(得分:1)

您需要允许profile/\w+作为正则表达式匹配/profile/123

Options -MultiViews
RewriteEngineOn
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^profile/(\w+)/?$ /profile?user=$1 [L,QSA,NC]