2014-12-27 33 views
0

我想在我的subdomain.olddomain.com所有未使用的链接重定向到newdomain.com 我试过,但它似乎并没有子站点的工作重定向一个子域所有未使用的链接到域

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

我设法使下面的代码,但问题是它不会重定向或捕获所有未使用的。它仅重定向访问未使用的链路时的一个例子的url如下面的根部和返回页面错误(例如,标签)(自从)

sub.domain.com/product_info.php?products_id=999 & osCsid = 29f8a9504d1c4de90a1a1e4106344280

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

附加信息: 我所试图做的是重定向所有的链接从subdomain.olddomain.com来newdomain.com因此,例如,当有人访问subdomain.olddomain.com/tags/vanilla或子域。 olddomain.com/product_info.php?products_id=999 & osCsid = 29f8a9504d1c4de90a1a1e4106344280m他们将被自动重定向到newdomain.com,该newdomain.com位于另一个服务器服务器

+1

“似乎没有工作”是什么意思?您能否添加一个不适合您的网址示例,您期望的与您实际得到的内容? – sjaime 2014-12-27 13:46:12

+0

其他链接不被捕获。我更新了我的问题,请检查 – JeVic 2014-12-27 18:43:31

回答

0

the documentation(重点煤矿):

每目录重写

  • 重写引擎可能会在.htaccess文件和部分中使用,但有一些额外的复杂性。
  • 要在此上下文中启用重写引擎,您需要设置“RewriteEngine On”和“Options FollowSymLinks”必须启用。如果 您的管理员已禁用覆盖FollowSymLinks的 用户目录,则无法使用重写引擎。出于安全原因,此限制是必需的。
  • 当使用在.htaccess重写引擎文件的每目录前缀(其总是为特定的目录相同的)是 用于重写规则图案匹配自动移除和 任何相对(未以斜线起动后自动添加或 协议名称)替换会遇到规则集的结尾。请参阅 RewriteBase指令了解有关哪些前缀 将被添加回相对替换的更多信息。
  • 如果您希望匹配每个目录(htaccess)RewriteRule中的完整URL路径,请使用RewriteCond中的%{REQUEST_URI}变量。
  • 删除的前缀总是以斜杠结尾,意味着匹配发生在从不具有前导斜杠的字符串上。因此,一个 模式与^ /从不匹配每个目录上下文。
  • 尽管重写规则在语法上和段落(包括它们的正则表达式对应部分)中是允许的,但这不应该是必需的,且不受支持。在这些情况下, 中断的可能特征是相对替换。

的的.htaccess文件是目录级的,所以您的规则永远不会匹配任何内容。你的规则应该是这样的:

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

这是假设newdomain.com不使用.htaccess文件,因为这将导致无限重定向。

+0

我刚刚尝试过,但它似乎并没有工作 – JeVic 2014-12-27 14:56:46

+0

此规则将:重定向**所有**网址**除**网址域名“subdomain.olddomain.com”* *以**'http://www.newdomain.com/what-ever/the-old?url = was'。我怀疑你不想排除任何网址,并且你的新网域位于不同的服务器上。如果新域名不在新服务器上,那么您希望排除新域名,而不是旧域名。 – Sumurai8 2014-12-27 15:30:19

+0

我想你误会了。我想要做的是将所有来自subdomain.olddomain.com的链接重定向到newdomain.com,例如subdomain.olddomain.com/tags/vanilla,subdomain.olddomain.com/product_info.php?products_id=999&osCsid=29f8a9504d1c4de90a1a1e4106344280将重定向到与newdomain.com相同的url,newdomain位于不同的服务器中 – JeVic 2014-12-27 18:40:42

相关问题