繁体   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