2016-05-07 31 views
1

私はApache 2.4.9を使用しています。私はそれは、この特定の場合を除いて、完璧に動作Htaccessはフォルダのリダイレクトを作成します

RewriteCond %{REQUEST_FILENAME} !-f [OR] 
RewriteCond %{REQUEST_FILENAME} \.(css|js)$ 
RewriteRule ^.*$ /index.php?url=$0 [L] 

私の.htaccessファイルにこのルールを持っている:
(「myfolderなど」フォルダが実際に存在する場合) /myfolderを呼び出す場合、ApacheはURLにhttp301を返します。 : /myfolder?url=myfolder

本当にこのリダイレクトが発生するかどうかはわかりません。

ご存知ですか?

ありがとうございます!

+0

このコードではリダイレクトは実行されません。 301リダイレクトを報告しているので、リダイレクトはキャッシュである可能性があります。ブラウザのキャッシュをクリアし、問題が解決するかどうか確認してください。これで問題が解決しない場合は、このリダイレクトの原因を特定します。 'index.php'のコードはおそらく? – Sumurai8

+0

これは間違いなくリダイレ​​クトの原因です。 "url"を "url2"に変更すると、リダイレクトが変更されます。 また、カールやwgetを使って直接試してみます。これはキャッシングの問題にリンクされていません。 –

答えて

2

あなたのケースでは、他の条件よりも前に条件を追加する可能性があります。これは、 "ファイル名がディレクトリではなく、ファイルではない"または "ファイル名がディレクトリではなく、css/jsで終わる場合"と表示されます。

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f [OR] 
RewriteCond %{REQUEST_FILENAME} \.(css|js)$ 
RewriteRule ^.*$ /index.php?url=$0 [L] 

これは内部リライトなので、リダイレクトは実行されません。リダイレクトはindex.phpファイルのheader(..)から来る可能性があります。

関連する問題