簡體   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