2015-12-30 116 views
1

我试图路由一个url,显示如下www.example.com/profile/1到以下页面,参数为www.example.com/profile?user=1。我的.htaccess中有以下RewriteRule,但路由不起作用。有人能告诉我我做错了什么吗?使用.htaccess路由友好的网址

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切换到不同的URL,但到目前为止没有运气。我可能会监督某个人可以帮助我的小问题。

回答

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]