web-dev-qa-db-ja.com

場所に基づいたGEOIP用のmodの書き換えの何が問題になっていますか?

私はmodrewriteの初心者ですが、以前はサーバーで正常に使用していました。

モジュールをApacheサーバーに正常にインストールし、PHPテストページでテストしました(市外局番が正しく返されました)。サイトでテストし、別のページにリダイレクトすることにしました。

GeoIPEnable On
GeoIPDBFile /usr/local/share/GeoIP/GeoIP.dat Standard
GeoIPDBFile /usr/local/share/GeoIP/GeoLiteCity.dat Standard

    RewriteEngine On
RewriteCond %{ENV:GEOIP_AREA_CODE} ^847  
RewriteRule ^$ http://www.teetimelawncare\.com/lawncare\.html$1 [NC,QSA]

毎回500内部サーバーエラーが発生するだけです。理由は何ですか?

編集:.htaccessファイルのAddType x-mapp php5行でエラーが発生しました。それを削除すると、機能します。

1
Deek

問題を特定するには、まずリダイレクトせずに試してください。それでも動作しない場合は、httpdユーザー(たとえば、nobody)がGeoIPデータベースファイルへの読み取りアクセス権を持っていることを確認してください。トラブルシューティングセクションで説明します here

また、。htaccessファイルまたはメインサーバー設定の各行が newline で終わっていることを確認し、前のスペースを削除しますRewriteEngine On

最後に、IndexCacheを使用することもできます。これにより、GeoIP Cityなどの大規模なデータベースファイルのルックアップと読み取り/書き込みアクセスの回数が減ります。例を参照してください here

2
dan