最近、私のホスティング プロバイダーは、Apache システムを 2.4.4 に更新しています。そうすることで、サイトを実行するためにクエリ文字列を強制する必要があるため、式エンジン サイトが壊れてしまいました。
私が理解していることから、.htaccess ルールの行を ... に更新するだけで、この問題を簡単に修正できます。
RewriteRule ^(.*)$ /index.php?/$1 [L]
残念ながら、これに対する修正はこれほど単純ではありませんでした。
私の Web サイトでは、カスタム式エンジン プラグインを使用して、IP to Nation モジュールを使用して世界のどの地域にいるのかを検出しています。基本的に何が起こるかというと、あなたが米国出身の場合は米国のコンテンツを含むサイトが表示され、それ以外の場所の場合は URI の最初の部分に「international」が追加され、URI の最初の部分に基づいて国際的なコンテンツが表示されます。私たちのURI
例えば
http://www.example.com/segment_1/segment_2/segment_2 = US SITE
http://www.example.com/international/segment_1/segment_2/segment_2 = INTERNATIONAL SITE
そのクエリ文字列を index.php の rewriteRule に追加しようとすると、国際サイトが壊れてしまい、その理由がわかりません。
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteRule /international/(.*)$ /index.php/$1 [L]
「?」を追加します。米国のサイトをRewriteRule ^(.*)$ /index.php?/$1 [L]
修正しますが、国際ページが見つからないと言って国際サイトを壊します。
「?」を追加します。国際サイトをRewriteRule /international/(.*)$ /index.php?/$1 [L]
修正しますが、クエリ文字列が必要なため、米国サイトは機能しません。
そして、それらの両方に追加しても機能しません。
この問題を克服するために .htaccess 内に何かが明らかに欠けていますが、正しい構文を生成できないようです。
何か案は?