2017-02-06 4 views
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-binhtdocs外に存在するとき、それはそれだけとそのサブディレクトリを含むディレクトリに適用されるよう、htdocs.htaccessファイルは、実行されることはありませんということです...ここで間違っているものを

答えて

2

を見ることはできません。 cgi-bincgi-bin.htaccessファイルにを入れてください。

+0

ありがとうございました。私はこれを試しましたが、どちらもうまくいきません.../cgi-bin/something-elseを呼び出すときに/ cgi-binを呼び出したときに "foribidden"を得るか "not found"を返しますか – Christian

+0

' '' AllowOverride all'を設定してcgi-binディレクトリにブロックを設定しますか?そうしないと、.htaccessファイルは処理されません。 'Options + FollowSymlinks'も必要です。 – SuperDuperApps

+0

あなたの答えをありがとう。残念ながら、私はhttpd.confへのアクセス権がないので、これを行うことはできません。ホスティングプロバイダにあります。たぶん私はそこに尋ねることができます... – Christian