繁体   English   中英

.htaccess重定向到除管理页面以外的其他域

[英].htaccess redirect to another domain except admin page

我问是因为我无法为自己的生活弄清楚出什么问题了,到目前为止,StackOverflow的答案都无效。

我必须将域重定向到除管理员以外的另一个子域。 例如:

sub1.domain.com/testsite/应该重定向到“ sub2.domain.com/testsite/”,但是sub1.domain.com/admin/或“ sub1.domain.com/de/admin/”应该保持原样。

首先,我尝试仅检查“ admin”,因此将重定向“ sub1.domain.com/admin/”以外的所有内容:

RewriteCond %{HTTP_HOST} ^sub1\.domain\.com
RewriteCond %{REQUEST_URI} !^\/admin
RewriteRule ^/?(.*)$ http\:\/\/sub2\.domain\.com%{REQUEST_URI} [R=301,L]

这个看起来最有希望,但是没有用。 第二个条件不起作用,管理页面仍被重定向。

如果有人可以提供帮助,我将不胜感激。


编辑:我应该说它是一个多域站点,这意味着我们对所有站点都有一个.htaccess文件,这就是我专门检查该域的原因。

我只是发布此内容,但无法对其进行测试! 但是我想这会重定向除该域以外的所有内容。

RewriteCond %{HTTP_HOST} !^sub1.domain.com/admin/ [NC]
RewriteRule ^/(.*)$http\:\/\/sub2\.domain\.com%{REQUEST_URI} [R=301,L,NC]

我希望它能起作用!

所以,

我只是找到了原因(除了我的愚蠢)。 我应该重定向的站点是Drupal站点。 这就是为什么所有链接都位于同一位置的原因:

sub1.domain.com/index.php

我的上述重写条件无法正常运行的原因是,sub1.domain.com / admin被重定向到sub1.domain.com/index.php,因此最终以“ sub2.domain.com/index.php”结尾”。 正确的重写规则如下所示:

 RewriteCond %{HTTP_HOST} ^sub1\.domain\.com
 RewriteCond %{REQUEST_URI} !^/(admin|index\.php|de\/admin|it\/admin|user|de\/user|it\/user)
 RewriteRule (.*) http://sub2.domain.com%{REQUEST_URI} [R=301,L]

这将重定向所有内容,除了:

sub1.domain.com/admin
sub1.domain.com/de/admin
sub1.domain.com/it/admin
sub1.domain.com/user
sub1.domain.com/de/user
sub1.domain.com/it/user

而且当然

sub1.domain.com/index.php

由于如果用户直接键入最后一个也不应该重定向,所以它不是一个完美的解决方案,但是我可以接受。

RewriteCond用于检查条件天气是否执行.htacess

对于您的情况,解决方案可能如下:

 Options +FollowSymLinks RewriteEngine On RewriteCond %{HTTP_HOST} ^domain\\.com [NC] RewriteRule ^(admin)$ http://sub1.domain.com/$1 [R=301,L] RewriteRule ^(.*)$ http://sub2.domain.com/$1 [R=301,L] 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM