2012-02-01 102 views
0

样品#1(按预期工作):的.htaccess的mod_rewrite重定向

RewriteCond %{HTTP_HOST} ^www.hanoichurch.com$ [OR] 
RewriteCond %{HTTP_HOST}  ^hicvn.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.hicvn.com$ [OR] 
RewriteCond %{HTTP_HOST}  ^hicvn.org$ [OR] 
RewriteCond %{HTTP_HOST} ^www.hicvn.org$ [OR] 
RewriteCond %{HTTP_HOST}  ^hanoiworship.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.hanoiworship.com$ 
RewriteCond %{REQUEST_FILENAME} !^google 
RewriteRule ^/?(.*)$ "http\:\/\/hanoichurch\.com\/$1" [R=301,L] 

样品#2(不起作用*):

RewriteCond %{HTTP_HOST} ^www.nathanbrauer.com$ [OR] 
RewriteCond %{HTTP_HOST}  ^nathanbrauer.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.nathanjbrauer.com$ 
RewriteCond %{REQUEST_FILENAME} !^google 
RewriteRule ^/?(.*)$ "http\:\/\/nathanjbrauer\.com\/$1" [R=301,L] 

*失败默默(访问www.nathanbrauer.com只需加载页面,不会重定向到nathanjbrauer.com)。

万分感谢!

===更新===

我最终什么事就是用这个代码做:

RewriteEngine On 
RewriteCond %{HTTP_HOST} !^nathanjbrauer\.com$ 
RewriteCond %{REQUEST_FILENAME} !^google 
RewriteRule^http://nathanjbrauer.com%{REQUEST_URI} [R=301,L] 
+0

请原谅我的矮小。我认为每个人和他们的母亲都会在这里看到.htaccess问题,所以我想我会保持简短:) – 2012-02-01 08:17:36

+0

此外,访问这些网站以测试自己可能无法正常工作,因为我只是更改了名称服务器,因此可能需要一些时间DNS已经传播。 – 2012-02-01 08:18:56

回答

2

你SAMPLE1代码也可以重构,但我只建议修正你的样品2的代码因为这不适合你:

RewriteCond %{HTTP_HOST} ^(www\.)?nathanbrauer\.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.nathanjbrauer\.com$ 
RewriteCond %{REQUEST_FILENAME} !^google [NC] 
RewriteRule^http://nathanjbrauer.com%{REQUEST_URI} [R=301,L] 
+0

这看起来是正确的,我认为它*应该*工作。但由于某种原因,事实并非如此。它与hanoichurch.com(工作)完全相同的服务器具有完全相同的环境(vhost是从hanoichurch.com复制的)。两个.htaccess都是chmod 644 chown root:root。它*是*阅读nathanbrauer.com上的htaccess(如果我输入乱码,我会得到一个500错误)。我对此很困惑。我还应该检查什么? – 2012-02-01 19:15:48

+0

当你说它不起作用?你没有被重定向到'http:// nathanjbrauer.com/uri'吗?或者你得到一些内部服务器错误?你测试的原始URL是什么? – anubhava 2012-02-01 19:24:26

+0

它现在生活在http://nathanbrauer.com和http://nathanjbrauer.com。对不起,不清楚:我没有被重定向(没有500错误)。它只是加载网站,就好像这些规则不存在一样。 – 2012-02-01 20:20:25