文件夹中的.htaccess如下:
RewriteEngine On
RewriteBase /profile/
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?username=$1
RewriteRule ^([a-zA-Z0-9_-]+)/$ index.php?username=$1
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/profile/$1 [R=301,L]
基本上,如果你访问www.mySite.com/profile/Username,我的index.php文件将'Username'作为$ _GET变量,URL看起来很干净(www.mySite.com/profile/Username )
但是,如果您访问mySite.com/profile/username(省略www),则网址将显示为http://www.mySite.com/profile/index.php?username=username
我怎样才能这样做只添加www而不会弄乱URL?
由于
答案 0 :(得分:1)
规则的排序在.htaccess中很重要。
请尝试使用此代码:
RewriteEngine On
RewriteBase /profile/
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/profile/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w-]+)/?$ index.php?username=$1 [L,QSA]