mod_geoip apache2。 htaccessは国別に全ページから1ページにリダイレクトします


0

サーバー - Apache 2.4。モジュール - mod_geoip、mod_rewrite; WordPressサイト

mod_geoipをインストールし、サイトの全ページから.htaccessリダイレクトを設定しようとしました。 https://example.com/ 〜へ https://example.com/restricted/ モナコからのユーザーのために。

私が最初に試すルールは:

    RewriteEngine On
    GeoIPEnable On
    RewriteCond% {ENV: GEOIP_COUNTRY_CODE} ^ (MC) $
    RewriteRule ^ (. *) $ Https://example.com/restricted/$1 [L]

その結果、モナコの市民はエラーERR_TOO_MANY_REDIRECTSを受け取ります。こんな感じです:

www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:16 +0000] "GET / HTTP/1.1" 302 3942 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KH$
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:16 +0000] "GET /restricted/ HTTP/1.1" 302 664 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.$
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:16 +0000] "GET /restricted/restricted/ HTTP/1.1" 302 678 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebK$
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:16 +0000] "GET /restricted/restricted/restricted/ HTTP/1.1" 302 692 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) Ap$
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:16 +0000] "GET /restricted/restricted/restricted/restricted/ HTTP/1.1" 302 706 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; $
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:17 +0000] "GET /restricted/restricted/restricted/restricted/restricted/ HTTP/1.1" 302 720 "-" "Mozilla/5.0 (Windows NT 6.1; $
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:17 +0000] "GET /restricted/restricted/restricted/restricted/restricted/restricted/ HTTP/1.1" 302 734 "-" "Mozilla/5.0 (Windows N$
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:17 +0000] "GET /restricted/restricted/restricted/restricted/restricted/restricted/restricted/ HTTP/1.1" 302 748 "-" "Mozilla/5.0 (Wi$
www.example.com:443 40.108.122.138 - - [29/Jan/2019:21:41:17 +0000] "GET /restricted/restricted/restricted/restricted/restricted/restricted/restricted/restricted/ HTTP/1.1" 

私が試して2番目のルールです:

RewriteEngine On
GeoIPEnable On
RewriteCond %{REQUEST_URI} ^/$ [NC]
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} (MC) [NC]
RewriteRule .* https://example.com/restricted/ [R=302,L]

その結果、モナコの市民はexample.comに行きます - >にリダイレクト https://example.com/restricted/ - できます; example.com/about/ - >にアクセスします。にリダイレクト https://example.com/restricted/ - 動作しません。

助けてください、どうぞ、私の過ちは何ですか?すべてのページからモナコのユーザーのために1つのページへのリダイレクトを設定するにはどうすればいいですか?

注意: .htaccessも含まれています:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

sites-enabled / example.confも含まれています:

<VirtualHost *:80>
        ServerName www.example.com
        ServerAlias example.com
        ServerAdmin support@example.com
        RewriteEngine On
        RewriteCond %{HTTPS} off [OR]
        RewriteCond %{HTTP_HOST} ^www\. [NC]
        RewriteRule ^ https://example.com%{REQUEST_URI} [L,NE,R=301]
</VirtualHost>
<VirtualHost *:443>
        ServerName www.example.com
        ServerAlias example.com
        ServerAdmin support@example.com
        RewriteEngine On
SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>

ありがとうございました!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.