我希望寫在.htaccess規則重定向子域名重定向
http://www.dir.domain.com
http://dir.domain.com
http://www.domain.com/dir
這些應該重定向到提前
http://domain.com/dir
謝謝...
我希望寫在.htaccess規則重定向子域名重定向
http://www.dir.domain.com
http://dir.domain.com
http://www.domain.com/dir
這些應該重定向到提前
http://domain.com/dir
謝謝...
這裏的技巧是使用.htaccess
file DOCROOT
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?dir\.domain\.com$
RewriteRule ^.* http://domain.com/dir/$0 [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^dir/.* http://domain.com/$0 [R=301,L]
請注意,這是301重定向 - 即服務器告訴瀏覽器,這是一個永久重定向,瀏覽器會緩存此重定向。
您也可以通過調整標誌在內部重定向,在服務器端以靜默方式完成此映射。
這是假設您的共享服務使用Apache,如果使用的是IIS的,那麼你需要做的web.config中類似
它不重定向... – HDTV 2012-02-25 18:42:02
> RewriteCond%{HTTP_HOST}^www.dir.domain.com [NC] > RewriteRule ^(。*)$ http://domain.com/dir/$1 [L,R = 301] > RewriteCond%{HTTP_HOST}^dir.domain.com [NC] > RewriteRule ^(。*)$ http://domain.com/dir/$1 [L,R = 301]> RewriteCond%{ HTTP_HOST}^dir.domain.com [NC] > RewriteRule ^(。*)$ http://domain.com/dir/$1 [L,R = 301]>如果我將此代碼添加到/dir/.htaccess那麼它會將[http://dir.domain.com] > [http://www.domain.com/dir]重定向到[http://domain.com/dir]>,但它不會重定向[ http://www.dir.domain.com] @TerryE – HDTV 2012-02-25 19:04:54
@HDTV,注意Cond1的調整 - 也編輯你的Q來添加這樣的信息。 – TerryE 2012-02-25 19:14:54
你可以試試:
RewriteCond %{HTTP_HOST} ^((?!www).+)\.domain\.com$
RewriteRule^http://domain.com/%1 [L,NE]
請在您的域中更改域,當您輸入sub1.domain.com時,它將重定向到domain.com/sub1,當您輸入sub2.domain.com時,它將重定向到domain.com/sub2 ....
請給出詳細的答案 – 2016-05-07 13:14:48
你現在有一個'* .domain.com'的catchall重定向到你的DOCROOT的'domain.com'嗎?你有什麼類型的服務? VPS或共享服務,如果後者是cPanel或webadmin啓用。你所問的是可行的,但答案因你告訴我們的情況而異。 – TerryE 2012-02-25 17:37:31
我在共享服務中有一個域和一個子域。這裏即時談論我的子域。 – HDTV 2012-02-25 18:13:54