.htaccess 将子域上所有未使用的链接重定向到域

.htaccess 将子域上所有未使用的链接重定向到域,.htaccess,redirect,url-redirection,.htaccess,Redirect,Url Redirection,我想将subdomain.olddomain.com中所有未使用的链接重定向到newdomain.com 我尝试过这个,但它似乎不适用于子域 RewriteCond %{HTTP_HOST} !^subdomain\.olddomain\.com [NC] RewriteRule ^/(.*) http://www.newdomain.com/$1 [L,R=301] 我成功地编写了下面的代码,但问题是它没有重定向或捕获所有未使用的代码。当访问未使用的linke.g时,它只

我想将subdomain.olddomain.com中所有未使用的链接重定向到newdomain.com 我尝试过这个,但它似乎不适用于子域

RewriteCond %{HTTP_HOST}   !^subdomain\.olddomain\.com [NC]
RewriteRule ^/(.*)         http://www.newdomain.com/$1 [L,R=301]
我成功地编写了下面的代码,但问题是它没有重定向或捕获所有未使用的代码。当访问未使用的linke.g时,它只重定向根目录并返回页面错误。标记一个示例url,如下所示

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

其他信息: 我想做的是将所有来自subdomain.olddomain.com的链接重定向到newdomain.com,例如,当有人访问subdomain.olddomain.com/tags/vanilla或subdomain.olddomain.com/product_info.php?products_id=999&osCsid=29f8a9504d1c4de90a1a1e41106344280m时,它们将自动重定向到newdomain.com,newdomain.com位于emphasis mine的另一台服务器中:

按目录重写

重写引擎可以在.htaccess文件和节中使用,但会增加一些复杂性。 要在此上下文中启用重写引擎,需要打开重写引擎,并且必须启用选项FollowSymLinks。如果 您的管理员已禁用对的FollowSymLinks的覆盖 用户的目录,则不能使用重写引擎。这 出于安全原因,需要进行限制。 在.htaccess文件中使用重写引擎时,对于特定目录始终相同的每个目录前缀是 为重写规则模式匹配而自动删除,并且 自动添加在任何不以斜杠或斜杠开头的亲戚之后 协议名称替换遇到规则集的结尾。见 RewriteBase指令,了解有关将使用哪个前缀的更多信息 可以添加回相对替换。 如果希望与每个目录htaccess重写规则中的完整URL路径匹配,请在 重写秒。 删除的前缀总是以斜杠结尾,这意味着匹配发生在一个从来没有前导斜杠的字符串上。因此, 在每个目录上下文中具有^/从不匹配的模式。 尽管重写规则在和节(包括其正则表达式对应部分)中是语法上允许的, 这不应该是必需的,并且不受支持。可能的特征 这些上下文中的中断是相对替换。 .htaccess文件是每个目录上下文的,因此您的规则永远不会匹配任何内容。您的规则应该如下所示:

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

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

什么看起来不起作用?你能添加一个不适合你的URL的例子吗?你期望的和你实际得到的是什么?另一个链接没有被捕获。我更新了我的问题请检查此规则将:将所有URL重定向到域名subdomain.olddomain.com以外的URLhttp://www.newdomain.com/what-ever/the-old?url=was. 我暗自怀疑您不想排除任何URL,并且您的新域位于不同的服务器上。如果新域名不在新服务器上,那么你想排除新域名,而不是旧域名。我想你误解了。我想做的是将所有来自subdomain.olddomain.com的链接重定向到newdomain.com,例如subdomain.olddomain.com/tags/vanilla,subdomain.olddomain.com/product_info.php?products_id=999&osCsid=29f8a9504d1c4de90a1e4106344280将重定向到newdomain.com的相同url,newdomain位于不同的服务器中
RewriteCond %{HTTP_HOST}   !^subdomain\.olddomain\.com [NC]
RewriteRule ^(.*)$         http://www.newdomain.com/$1 [L,R=301]