2013-02-26 35 views
0

我试着去了解一些基本的重写的东西,所以我发现那位是一样的东西:使用通配符的RewriteCond结合的标志吗?

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

和:

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

但如果我结合它像

RewriteCond %{HTTP_HOST} ^(www2.example|example).(.+)$ [NC] 

我得到由于重定向过多导致内部服务器错误。

所以,我怎么能结合使用或内部消除www和不同域的结尾:

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

我觉得应该是很简单,但我只是不明白这一点...

+0

“结合”他们做什么?请解释你想用mod_rewrite实现什么? – 2013-02-26 11:31:17

+0

第一COND重定向到example.anything www.example.com和第二COND重定向www2.example.de或example.de到www.example.com,现在我想是这样(“WWW” |“”)。例如(*)将被定向至www.example.com。 – Karim 2013-03-16 00:33:12

+0

或者,也许更容易:在我最后的代码块我有5个的RewriteCond并希望做同样在1周...的RewriteCond – Karim 2013-03-16 00:34:42

回答

1

五编码可以结合在一个单一的,像这样:

RewriteCond %{HTTP_HOST} ^example\.com$    [NC,OR] 
RewriteCond %{HTTP_HOST} (?:www\.)?example\.(name|de) [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 
+0

感谢您的回答,但如果我不喜欢这样,我得到相同的:错误310(净值:: ERR_TOO_MANY_REDIRECTS)..任何其他想法? – Karim 2013-03-18 15:22:45

+0

我的错误。我包含了“www.example.com”。在我的答案中添加了一行。 – 2013-03-18 15:28:41

+0

酷,非常感谢,现在我终于明白了太多次重定向错误...! – Karim 2013-03-19 18:41:55