14

3 つの異なるストアを持つ e コマース サイトの mod_geoip に問題があります。root/store に本店がありますが、root/ukstore と root/austore にも店舗があります。メインのルート/ストアには、すべての css、画像、および javascript を含む /skin、/media、および /js ディレクトリが含まれています。この現在のセットアップでは、URL はベースを問題なく交換しますが、URL の残りの部分はそのまま残します。そのため、英国のユーザーが root/store/category/product/ にアクセスすると、root/ukstore/category/product/ にリダイレクトされます。 .

今問題になっている2つのこと。

顧客がチェックアウトやアカウントなどの安全なページにアクセスするたびに、css と JavaScript の URL が root/ukstore/skin または root/ukstore/js に書き換えられます。これらの URL の SSL に関して欠けているものはありますか?

次に、南アフリカのユーザーがストアにアクセスすると、それらは英国のストアに書き換えられ、すべての css、js、画像は完全にストア/スキンにリンクされますが、英国のユーザーがストアにアクセスすると、URL for css, js, images は root/ukstore/skin に書き換えようとしています

root/store にある htaccess ファイルのコードは次のとおりです。各ストアには独自の htaccess ファイルもありますが、そこにはあまりありません。

<IfModule mod_geoip.c>
GeoIPEnable On

Options +FollowSymLinks
RewriteEngine on
#skip processing directories
RewriteRule ^store/skin/  - [L,NC]
RewriteRule ^store/media/  - [L,NC]
RewriteRule ^store/js/  - [L,NC]

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(AQ|AU|MY|BV|BN|BN|MM|KH|CN|CX|CC|CK|GQ|FJ|PF|GU|GW|HM|HK|ID|KI|KR|KP|KR|LA|MO|MY|MH|FM|MM|NR|NC|PG|NZ|NU|NF|PG|CN|PH|PN|WS|SG|SB|KR|LK|BN|TW|TW|AU|TH|TL|TK|TO|TV|VU|VN|VN|WF)$
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC]
RewriteRule ^ /austore%1 [L,R]

#UK Store Rewrites
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(AF|AX|AL|DZ|AD|AO|AM|AT|AZ|BH|BD|IS|BY|BE|BJ|BT|BA|BW|IO|BG|BF|BI|GB|CM|ES|CV|CF|TD|GB|KM|CG|CD|CG|CD|CI|HR|CY|CZ|CZ|BJ|DK|DJ|EG|ER|EE|ET|FO|FI|FR|TF|GA|GM|GE|DE|GH|GI|GD|GR|GL|GN|VA|HU|IS|IN|IR|IR|IQ|IE|IL|IT|CI|JO|KZ|KE|KW|KG|LV|LB|LS|LR|LY|LY|LI|LT|LU|MK|MG|MW|MV|ML|MT|MR|MU|MC|MC|MN|ME|MA|MZ|NA|NP|NL|NE|NG|IE|NO|OM|PK|PS|PS|CG|PL|PT|QA|CI|MK|ZA|CD|RE|RO|RU|RW|SH|SM|ST|SA|SN|RS|SC|SL|SK|SI|SO|SO|ZA|ES|SD|SJ|SZ|SE|CH|SY|SY|TJ|TZ|TN|TR|TM|AE|UG|UA|AE|GB|BF|UZ|VA|GB|EH|YE|ZM|ZW)$
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC]
RewriteRule ^ /ukstore%1 [L,R]
</IfModule>

どんな助けでも大歓迎です!

4

2 に答える 2

1

問題は、.htaccessコンテキストで書き換え条件を使用しているため、条件は現在のディレクトリに関連する必要があり、それが、質問に記載されているスキン、js、およびメディアに関連する書き換え条件がそうでない理由です。マッチ。それらを次のようなものに置き換える必要があります。

RewriteRule ^(skin|media|js)/ - [L,NC]

または、mod_rewrite ガイド ( http://httpd.apache.org/docs/current/mod/mod_rewrite.html#RewriteRule )に記載されているように

ディレクトリごと (htaccess) の RewriteRule で完全な URL パスと照合する場合は、RewriteCond で %{REQUEST_URI} 変数を使用します。

于 2013-06-25T10:26:33.327 に答える