htaccess的非www重定向错误

问题描述:

这里是我的htaccess代码,htaccess的非www重定向错误

Options +FollowSymLinks 

RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^mysite\.com [NC] 
RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L] 

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9]*)$ /profile.php?user=$1 [L,QSA] 
当我输入 “http://mysite.com/username” 它的工作原理

但是当我输入“http:/ /www.mysite.com/username“ 它重定向到”http://mysite.com/profile.php?user=username“

我该如何解决这个问题?

+0

你可以对这个问题更清楚了吗?什么应该http://www.mysite.com/username重定向到? – ACarter 2012-02-13 19:14:46

+0

我想要的是,当我键入“http://www.mysite.com/username”重定向到“http://mysite.com/username”,但它转到“http://mysite.com/profile”。 ?PHP的用户名=” – 2012-02-13 19:17:05

按照意见,这将删除“WWW”我认为这是部分你想要的。

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^www.mysite.com$ [NC] 
RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L] 

我觉得这与GET变量同时存在吗?

+0

仍然不能正常工作:/ – 2012-02-13 19:44:01

+0

对不起,不要以为我可以帮了那么:( – ACarter 2012-02-13 19:45:29

这是因为您的/(DocumentRoot)中的.htaccess正在重新读取。

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{ENV:REDIRECT_STATUS} 200 
RewriteRule .* - [L] 

RewriteCond %{HTTP_HOST} ^www [NC] 
RewriteRule ^(.*)$ http://mysite.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-zA-Z0-9]+)$ /profile.php?user=$1 [L,QSA] 

此外, 无需添加不止一次

RewriteEngine On 
RewriteBase/

更多。删除第二个条目。

+0

仍然不能正常工作:?/ – 2012-02-13 19:42:38

+0

@Rothzerg你做了什么你用'%{ ENV:REDIRECT_STATUS} 200'或我提到的其他解决方案,你需要给细节 – ThinkingMonkey 2012-02-13 19:45:49

+0

我想他们所有,但仍然无法正常工作 – 2012-02-13 19:54:49

下面是应为你工作的代码:

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^(mysite\.com)$ [NC] 
RewriteRule^http://%1%{REQUEST_URI} [R,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC] 
RewriteRule ^([a-z0-9]*)$ profile.php?user=$1 [L,QSA,NC] 
+0

感谢您的relpy anubhava,但我只是试了一下,仍然无法正常工作:s – 2012-02-13 20:52:34

+0

当您输入'http:// mysite.com/foo'确定会发生什么? – anubhava 2012-02-13 20:56:31

+0

awww,它工作得很好 但是当我输入www.mysite.com/foo 它去http://mysite.com/profile.php?user=foo – 2012-02-13 21:06:20