【问题标题】:.htaccess Redirect with Cloudflare location.htaccess 使用 Cloudflare 位置重定向
【发布时间】:2017-02-16 07:38:24
【问题描述】:

我真的很难根据云耀斑国家代码将重定向放置到我的 .htaccess 文件中。使用本网站上的示例,我要么收到“太多重定向错误”,要么收到 500 个内部错误。

我目前有这个:

Options +FollowSymLinks
RewriteEngine on

SetEnvIf CF-IPCountry "(.*)$" Country=$1

RewriteCond %{ENV:Country} GB
RewriteRule ^(.*)$ http://example.com/$1 [R,L]

所以我需要默认域为http://example.com

但如果国家代码 GB 来自 cloudflare,我需要它重定向到:

http://example.com/gb

以我对 .htaccess 的了解有限,这可能吗?

【问题讨论】:

    标签: apache .htaccess redirect geolocation cloudflare


    【解决方案1】:

    尝试:

    Options +FollowSymLinks
    RewriteEngine on
    
    RewriteCond %{HTTP:CF-IPCountry} ^GB$
    RewriteCond %{REQUEST_URI} !(?:gif|png|jpg|jpeg|css)$ [NC]
    RewriteRule !^gb/ /gb%{REQUEST_URI} [NC,NE,R,L]
    

    当请求来自具有CF-IPCountry=GB 且尚未使用/gb/ 链接的用户时,将http://example.com/test 重定向到http://example.com/gb/test

    【讨论】:

    • 嗨,这实际上按预期工作,但是,它破坏了我的所有资源(图像/css 文件等),因为我认为它也在重定向这些请求。没有子文件夹中所有内容的副本,有没有办法避免这种情况?
    • 我添加了一条规则以避免重写图像或 css 文件。
    • 该代码有效,但是...如果我想添加更多国家/地区以重定向到相同的网址怎么办?这可能吗(例如墨西哥和西班牙重定向到 mydomain.com/es/ 最后一个问题,是否可行,所以如果它是主页,它只会重定向?非常感谢
    • 你可以使用!^(gb|mx|sp)/ /gb%{REQUEST_URI} [NC,NE,R,L]
    • 首页RewriteRule ^$ /gb/ [R,L]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2016-05-07
    • 2019-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-19
    相关资源
    最近更新 更多