【问题标题】:Apache Mod_Rewrite needs to keep the Path but change the DomainApache Mod_Rewrite 需要保留路径但更改域
【发布时间】:2015-09-17 09:59:37
【问题描述】:

背景

我的网站有几个其他别名域名,为了精简和简化我希望所有域都恢复为我现在宣传的一个域名 -

主要名称:www.explorerWorld.co.uk

加载相同内容但保留自己地址的其他名称:

www.exploreElsewhere.co.uk

www.exploitedexplodedexplorers.co.uk

我所拥有的是,在互联网上,人们的博客和其他地方都有指向我网站上特定页面的链接,但这些链接将位于这些不同的域下。

我已经更改了 cPanel 下的域 Alises,这仅适用于基地址,但例如 www.exploreElsewhere.co.uk/trees.php 的域不会重定向。

问题

我希望这些页面仍然有效,但重定向到主站点 -- www.explorerWorld.co.uk -- * 但保留它们的文件路径*

所以:www.exploreElsewhere.co.uk/plants/trees.php 无缝更改为 www.explorerWorld.co.uk/plants/trees.php

到目前为止我的 htaccess:

RewriteCond %{HTTP_HOST} !^exploreWorlds\.co\.uk$1 [NC]
RewriteRule ^(.*)$ http://www.exploreWorlds.co.uk/$1 [R=301,L]

但这似乎在一个无休止的重复循环中工作,我该如何改进这个 htaccess ?

我也看过这里,但这不是很有帮助: .htaccess change domain but keep path

【问题讨论】:

  • 尝试将RewriteCond 更改为!^(www\.)?exploreworlds\.co\.uk$1 可能没有按照您的想法进行操作,因此您可以将其删除,或者至少仅将其设置为 $
  • 感谢@arco444,重定向现在可以工作,但它不保留域路径。我有一个小提琴,我找到了使用 %{REQUEST_URI} 的解决方案。为轻推干杯!

标签: apache .htaccess mod-rewrite redirect


【解决方案1】:

我发现解决这个问题的方法是使用%{REQUEST_URI},这是给服务器的路径。

(带有来自 Arco444 的指针)

RewriteCond %{HTTP_HOST} !^(www\.)?exploreworlds\.co\.uk [NC]
RewriteRule ^(.*) http://www.exploreworlds.co.uk/%{REQUEST_URI} [R=301,L]

这成功地重写了 URL 的域部分以强制将别名 URL 链接重定向到我的基本网站地址 + 路径

【讨论】:

  • 我建议你去掉 %{REQUEST_URI} 前面的斜线。该环境参数已经包含一个前导斜杠!此外,您的 RewriteRule 匹配模式 ^(.*) 可以更短且更有效:匹配任何可以使用单个插入符号的内容。所以你最终得到:RewriteRule ^ http://www.exploreworlds.co.uk%{REQUEST_URI} [R=301,L]
【解决方案2】:

你的 RewriteCond 有错误。试试

RewriteCond %{HTTP_HOST} !^www.exploreWorlds\.co\.uk$1 [NC]
RewriteRule ^(.*)$ http://www.exploreWorlds.co.uk/$1 [R=301,L]

取而代之,或者从原始 sn-p 中删除 tilda

【讨论】:

  • 原代码中没有tilda?您的重写规则也与我的问题中的规则完全相同。
  • 不是这样看你 RewriteCond RewriteCond %{HTTP_HOST} !^exploreWorlds\.co\.uk$1 [NC] 它没有 www。
  • 好的。我不认为万维网是一个问题,因为问题是维护路径结构而不是子域! tilda 你的意思是感叹号! ?
  • 对不起 - 我的意思是插入符号。在重写规则中,它充当正则表达式的起始锚。
猜你喜欢
  • 2013-04-24
  • 2014-04-13
  • 2012-09-25
  • 1970-01-01
  • 2012-05-04
  • 2012-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多