3
私が助けてくれた答えが見つからなかったので、ここでナッツを食べました。Apache - .htaccess
問題は次のとおりです。ウェブサイトがリニューアルされ、古い/無効な/ cgi-bin/...サイトを新しいインデックスにリダイレクトしたいと思います。ここで私は私の.htaccessで得たものだ:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.example.com$ #(this works)
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] #(this works)
RewriteRule ^cgi-bin(.*)$/[R=301,L] #(this doesn't work!)
RewriteRule ^pdf(.*)$/[R=301,L] #(this works)
だから私の問題は、この行です:
RewriteRule ^cgi-bin(.*)$/[R=301,L]
私はテストサーバー(同じホストプロバイダ)のhtaccessファイルに正確に同じルールを追加した場合これは完全に機能します。違いは、htdocsの外にcgi-binフォルダが存在することですが、問題ではないはずです。私はこの問題はcgi-bin
がhtdocs
外に存在するとき、それはそれだけとそのサブディレクトリを含むディレクトリに適用されるよう、htdocs
.htaccess
ファイルは、実行されることはありませんということです...ここで間違っているものを
ありがとうございました。私はこれを試しましたが、どちらもうまくいきません.../cgi-bin/something-elseを呼び出すときに/ cgi-binを呼び出したときに "foribidden"を得るか "not found"を返しますか – Christian
' '' AllowOverride all'を設定してcgi-binディレクトリにブロックを設定しますか?そうしないと、.htaccessファイルは処理されません。 'Options + FollowSymlinks'も必要です。 –
SuperDuperApps
あなたの答えをありがとう。残念ながら、私はhttpd.confへのアクセス権がないので、これを行うことはできません。ホスティングプロバイダにあります。たぶん私はそこに尋ねることができます... – Christian