【问题标题】:Redirect www.domain.com/uk to www.domain.co.uk/uk将 www.domain.com/uk 重定向到 www.domain.co.uk/uk
【发布时间】:2011-09-06 16:11:08
【问题描述】:

我不是 .htaccess 专家,但我尝试了一些不同的方法来重定向域但无济于事。

我有一个英国和美国域名...一些美国网页有英国扩展名,需要指向正确的英国域名:

www.domain.com/uk需要重写为www.domain.co.uk/uk

例如。如果有人输入www.domain.com/uk/about,它将被重写为www.domain.co.uk/uk/about

编辑:应该重写/uk 的路径

所以www.domain.com/ukwww.domain.co.uk 应该重写为www.domain.co.uk/uk/

【问题讨论】:

    标签: apache .htaccess mod-rewrite internationalization dns


    【解决方案1】:

    你可以试试这样的:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
    RewriteRule (.*) http://www.domain.co.uk/$1 [L,R=301]
    

    重要的一点是使用RewriteCondition,它适用于 HTTP 主机标头。简单来说,如果RewriteCond 放在普通的RewriteRule 之前,则仅在条件匹配时才使用该规则。

    上面的代码摘录将所有来自.COM的请求重定向到.CO.UK域,所以如果你只需要重定向某个目录,那么你需要相应地调整规则,例如:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$
    RewriteRule uk(.*) http://www.domain.co.uk/uk$1 [L,R=301]
    

    编辑:我希望这将根据您的编辑对您有用。

    第一条规则将http://www.domain.com/ukhttp://www.domain.com/uk/anything 重写为http://www.domain.co.uk/uk/anything

    第二条规则将http://www.domain.co.uk 重写为http://www.domain.co.uk/uk/

    编辑 2: 我更改了规则(修改了最后一条并添加了另一条)以反映对 .co.uk/something 的重写需求。如果路径以uk/ 开头,那么它只是通过,否则它会被重写为uk/something

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.com$ [NC]
    RewriteRule uk($|/.*) http://www.domain.co.uk/uk$1 [L,R=301]
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
    RewriteRule ^uk/(.*) - [PT,L]
    RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
    RewriteRule (.*) http://www.domain.co.uk/uk/$1 [L,R=301]
    

    【讨论】:

    • 您的答案还需要考虑仅应重定向以/uk 开头的路径。
    • 在我看来,最初的问题并不清楚是否应该只重定向路径或文件。它主要是关于域重定向,但是 - 当然 - 仅路径重定向也应该是可能的(使用不同的规则)。
    • 我在我的帖子中添加了一个编辑,不确定这是否能澄清任何事情。 /uk 应该始终存在于英国页面
    • 嗯,我尝试了编辑,第一个重写规则有效,但第二个并非总是如此。假设我输入“www.domain.co.uk/about”它不会将其重写为“www.domain.co.uk/uk/about”....但如果我只输入“www.domain.co” .uk”它确实将其重写为“www.domain.co.uk/uk”
    • 对于该重写,我刚刚修改了规则集(参见编辑 2)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-08-02
    • 2019-07-08
    • 2022-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    相关资源
    最近更新 更多