• 締切済み

htaccessの制御で500エラーが出る

htaccessで、メンテナンス画面とhtmlファイルのままPHPを実行する記述を 同時に書きたいのですが、そうするとIP除外していない人に500エラーが出ます。 ErrorDocument 503 /maintenance.html <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx RewriteRule ^.*$ - [R=503,L] </IfModule> Action myphp-script /php.cgi AddHandler myphp-script .php .html さくらのレンタルサーバーですので、"AddType application/x-httpd-php .php .html"ではなく 上のように書くとhtmlでPHPを実行できます。 この記述のままアクセスすると、REMOTE_ADDRでIP除外しているものからは 思い通りにそのまま表示されるのですが、それ以外のものからは500エラーが出る状態と なっています。 希望は、特定IPのみhtmlでPHPを実行する通常アクセス。 特定IP以外は、メンテナンス画面という結果にしたいです。 なにか方法はありますでしょうか?

みんなの回答

  • bunthit
  • ベストアンサー率0% (0/1)
回答No.2

おそらく/php.cgiも除外設定が必要になると思います。 RewriteEngine On RewriteCond %{REQUEST_URI} !=/maintenance.html RewriteCond %{REQUEST_URI} !=/php.cgi RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx RewriteRule ^.*$ - [R=503,L] こんな感じでいかがでしょうか。

回答No.1

こんにちは。 ちょっと質問の内容が???です・・・。 この場合、 1.リクエストされたURIが「/maintenance.html」”じゃない” かつ 2.リモートアドレスが「xxx.xxx.xxx.xxx」”じゃない” 場合は、 RewriteRule ^.*$ - [R=503,L] ですが、どのような問題提起なのでしょう・・・?