2017-12-17 10 views
0

これは私の試みであるため、私のすべてのPHPファイルを別のフォルダに入れようとしています の.htaccessです。.htaccess RewriteRule .php拡張コンフリクト

DirectoryIndex /PUBLIC/index.php 

RewriteEngine on 
#Startpage Header Banner 
RewriteRule ^header_banner(.*) PUBLIC/template/start/header_banner/$1 
#Public files 
RewriteRule ^css(.*)\.css PUBLIC/css/$1\.css 
RewriteRule ^js(.*)\.js PUBLIC/js/$1\.js 
RewriteRule ^symbol(.*) PUBLIC/symbol/$1 
#All PHP Requests 
RewriteRule ^(.*)\.php /RESOURCES/$1\.php 

すべてがうまくいきますが、私のPHPリクエストを別のフォルダにリダイレクトしたい最後の行には、このエラーがあります。

enter image description here

私はRewriteRule ^(.*)\.php RESOURCES/$1\.htmlようまたはコードは、単に通常のように動作し、何か他のものに.htmlに拡張子を変更。

enter image description here

サーバは、この上の例外をスローするのはなぜ?

+0

エラーコード500です。私の質問で指摘したように、拡張子を '.php'以外のものに変更すると正しく動作します。 –

答えて

1

追加、

RewriteCond %{REQUEST_FILENAME} !-f

上記

RewriteRule ^(.*)\.php /RESOURCES/$1\.php

はあなたの仕事を得ることができます。作成したリクエストは実際のPHPファイルではないので、 RewriteCond %{REQUEST_FILENAME} !-fは条件を渡してルールを処理します。

RewriteRule ^(.*)\.php /RESOURCES/$1\.phpだけを指定すると、作成中のリクエストにphpの拡張子があり、宛先ファイルにも.phpの拡張子があるため、同じページにページがリダイレクトされる回数が多すぎます。

+0

この行のコードを 'RewriteRule ^(。*)\。php/RESOURCES/$ 1 \ .php'とすると、私のサーバーはたくさんの不要なリダイレクトになりますか? –

+0

うん。それは '.php'をとり、それを別の' .php'ファイルにリダイレクトするので、 '.php'は別の' .php'にリダイレクトされるので、プロセスを繰り返しているように見えて無期限にリダイレクトします。 – Perumal

+0

あなたが提供する 'RewriteCond%{REQUEST_FILENAME}!-f'行はうまく動作します。無限のリダイレクトはありません。これを解決する方法をあなたは何を提案しますか? –