質問: .htaccessの記述に関する質問です。 初歩的に質問でしたら、申し訳ありません。 .htaccessの設定で 特定のディレクトリのみリダイレクト除外且つcgiをhtmlとして表示させたいです。 例えば、下記のようなイメージです。 ────── ■ 特定のディレクトリのみリダイレクト除外 aaa.com というドメインの aaa.com/bbb/ 以下のみリダイレクト対象から除外させたい。 <試した記述> ルートに以下を記述した.htaccessを設置。 ``` RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !(^/bbb/) RewriteRule ^$ http://www.aaa.com/ [R=301,L] ``` → 効果なしでした。 ────── ■ cgiをhtmlとして表示 /bbb/ディレクトリに設置してあるccc.cgiというファイルを ブラウザ上でccc.htmlとして表示させたい。 実際のファイル:aaa.com/bbb/ccc.cgi ↓ ブラウザ上での表示:aaa.com/bbb/ccc.html <試した記述> /bbb/ディレクトリに以下を記述した.htaccessを設置。 ``` RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)\.html$ /$1.cgi [L] ``` → 効果なしでした。 ────── .htaccessの記述や設置箇所に問題があるとは思うのですが、 どこに問題があるのかわからず、途方に暮れています。 ご存知の方がいらっしゃいましたらお教え頂きたいです。 宜しくお願い申し上げます。
回答: .htaccessは苦手なのでうまくいくかわかりませんが、下記を試してみてください。 ``` ## root RewriteEngine On RewriteBase / RewriteCond %{REQUEST_URI} !^/bbb/.*$ RewriteRule ^.*$ http://www.aaa.com/ [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^bbb/(.*)\.html$ bbb/$1.cgi [R=301,L] ``` ``` ## bbb # なし ```