簡體   English   中英

將子域重定向到主域

[英]Redirect subdomain to main domain

我正在處理一個同時支持英語和西班牙語的網站,我想知道如何將所有請求重定向到特定於語言的子域到主域(en.mysite.com和es.mysite.com到mysite.com)。

整個站點都使用PHP編程,並且具有主腳本index.php ,該腳本處理language和GET參數section並相應地顯示內容。

現在,我嘗試在mysite.com根目錄下的.htaccess文件中執行以下操作。 我認為這澄清了我要做什么:

RewriteEngine On

# English redirects

RewriteRule ^en.mysite.com$ index.php?language=English&section=Main
RewriteRule ^en.mysite.com/store$ index.php?language=English&section=Store
RewriteRule ^en.mysite.com/create_account$ index.php?language=English&section=CreateAcc

# Spanish redirects

RewriteRule ^es.mysite.com$ index.php?language=Spanish&section=Feed
RewriteRule ^es.mysite.com/comprar$ index.php?language=Spanish&section=Store
RewriteRule ^es.mysite.com/crear_cuenta$ index.php?language=Spanish&section=CreateAcc

但這是行不通的。 誰能告訴我我在做什么錯?

您不能在RewriteRule中將主機名作為匹配項的一部分,因為它僅與URI匹配。 您需要為每個規則使用與主機名匹配的單獨RewriteCond

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC]
RewriteRule ^$ /index.php?language=English&section=Main

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC]
RewriteRule ^store$ /index.php?language=English&section=Store

RewriteCond %{HTTP_HOST} ^en.mysite.com$ [NC]
RewriteRule ^create_account$ /index.php?language=English&section=CreateAcc

然后西班牙語重寫:

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC]
RewriteRule ^$ /index.php?language=English&section=Feed

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC]
RewriteRule ^comprar$ /index.php?language=English&section=Store

RewriteCond %{HTTP_HOST} ^es.mysite.com$ [NC]
RewriteRule ^crear_cuenta$ /index.php?language=English&section=CreateAcc

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM