1

Apache 構成には、次の書き換えマップ設定があります。

RewriteEngine on
RewriteMap modernmap txt:/etc/apache2/maps/salon/www.modernmap.com.txt
RewriteCond ${modernmap:$1|NOT_FOUND} !NOT_FOUND
RewriteRule ^(.+) ${modernmap:$1} [R=301,L]

テキスト ファイルには、次のような約 28,000 のエントリが含まれています。

/url1 http://www.example.com/url2
/url3?id=3 http://www.example.com/url9?id=33

書き換えはテキスト ファイルの最初の 24320 行で機能し、24320 行以降のすべての書き換えで失敗します。問題があり、問題が解決しない場合に備えて、24319、24320、および 24321 行の URL を削除しました。

より小さなサブセットで試してみましたが、問題は別の行に移動しました。

テキスト ファイルを dbm に変換して dbm を使用しようとしましたが、同じことが起こります。

私は次に何をすべきか途方に暮れています。

4

1 に答える 1

1

ありがとうサムライ8。あなたは私を正しい方向に向けました。これは次のように機能するようになりました。

RewriteEngine on
RewriteMap modernmap txt:/etc/apache2/maps/salon/modernmap.txt

RewriteCond %{REQUEST_URI} ^(.+)
RewriteCond ${modernmap:%1?%{QUERY_STRING}} ^(.+)
RewriteRule ^(.+) %1? [R=301,L]

RewriteCond ${modernmap:$1|NOT_FOUND} !NOT_FOUND
RewriteRule ^(.+) ${modernmap:$1} [R=301,L]
于 2014-10-21T13:51:53.033 に答える