WordPressの生成する.htaccessが既存のCGIに影響してしまった!

これまた自分用覚書。同様のケースが今後もありそうなので。

とある案件で、今までPCサイトとモバイルサイトを持っていたのだけど、
今回PCサイトのみをWordPressで作り変えました。

モバイルサイトの方は今回は何も手をつけていないのだけど、WordPressを設置してからモバイルサイトのメールフォームCGI(Perl)が使えなくなって焦りました。

問題のサイトの構成

ドキュメントルート
 |
+-- /wp-admin
+-- /wp-content
+-- /wp-include
 | -wp-config.php
 (略:その他、wp-***.phpファイルいろいろ)
 |-.htaccess(※1..WordPressにより生成)
 |
+-- /mobile(モバイルサイトディレクトリ)
   |+--/send
   |   |-.htaccess(※2..CGIをこのディレクトリで許可するために設置)
   |   |-mailform.cgi ※これが使えなくなった
   |   |-(略:メールフォームCGIのモジュールいろいろ)

   |-index.html
   |-form.html
   |-(略:その他静的なファイルいろいろ)

こんなかんじ。

/mobile/send/mailform.cgiを呼び出すと、

Access forbidden!
要求されたオブジェクトへのアクセス権がありません。 読み込みが許可されていないか、 サーバが読み込みに失敗したかでしょう。

あー、しまったー!って感じですね。
なんせ、このCGIはここのお客さんが以前に別の制作会社で作ってもらったものなので仕様はよくわからないのです。

でも、WordPressを入れる前は普通に動いてたので、何かしらWordPress関連のものが干渉してるのは容易に推測できました。

解決策

もともと、このサーバはcgi-bin以外でCGIを動かすためには.htaccessを置かなくてはいけないので(よくあるタイプ)、それで 上記※2 の.htaccessに以下のような記述がしてありました。

[default]
Options ExecCGI
AddType text/html cgi
AddHandler cgi-script cgi
[/default]

そこに、以下の記述を付け足して解決しました。

[default]
<IfModule mod_rewrite.c>
RewriteEngine Off
</IfModule>
[/default]

ハイ解決!!

まぁ単純な話なんですけど、ドキュメントルートにある、WordPressが自動生成した.htaccess(上記※1.)に以下のようなmod_rewriteの記述がしてあって、それが下層ディレクトリ全部に影響してたってことで。

[default]
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ – [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
[/default]

WPをルートにおいて、サブディレクトリに別のコンテンツを置くときは要注意。

コメントをどうぞ

メールアドレス (必須・公開されません)
コメント本文

  • スパム・迷惑コメント投稿防止のため、メールアドレスの入力が必須ですが、公開はされません。何卒ご協力のほどお願いいたします。
  • 投稿いただいたコメントは管理者のチェック後掲載しておりますので、即時には反映されません。
  • 記載内容に関する批判や間違いの指摘などはそのまま掲載する方針ですが、投稿内容と無関係な誹謗中傷、一方的な罵詈雑言の場合は削除させていただく可能性があります。
  • 通常業務の合間にコメントチェックをしておりますので、すべてのコメントへのお返事が出来ない場合もございます。あらかじめご了承ください。
  • 管理人個人への連絡等は、コメント欄ではなくコンタクトフォームをご利用ください。

書籍を執筆しました

WordPress 標準デザイン講座【Version 4.x対応】


翔泳社さんより、2015/02/27発売しました。2年経ちますのでもう賞味期限切れだとは思いますが、一応実績として...

寄付歓迎(・ω<)☆

当ブログの記事があなたの役に立ったら、気が向いたらでいいのでドネーションいただけると更新の励みになります!
気が向いた方はこちらから

ブログ内検索