2017-03-18 4 views
2

私は解決策を見てきましたが、私が見つけたものは何も無限ループ問題を止めました。htaccess index.phpを通してすべてをリダイレクトしたときの無限ループ

私はそう私にしてください許しhtaccessのに非常に新しいです..

私は現在、私が構築していますCMSのためWAMPサーバを実行していると私は、このようなローカルホスト/ CMS /ページ名を介するなど、すべてのページ要求をリダイレクトしますindex.phpファイルのURLを変更しないでください。それは再びリダイレクトし、私はその理由は分からないリダイレクト時に何らかの理由で

#disable directory showing 
Options -Indexes 

#error documents 
ErrorDocument 404 cms/html/notfound.html 
ErrorDocument 403 cms/html/notfound.html 

#index 
DirectoryIndex cms/html/index.php 

RewriteEngine On 
Options +FollowSymlinks 

RewriteBase/
RewriteRule ^admin/?$ cms/html/login.php 
RewriteRule ^login.php?$ cms/php/login.php 
RewriteRule ^reset_password?$ cms/html/reset_password.php 
RewriteRule ^reset.php/?$ cms/php/reset.php 
RewriteRule ^reset_action.php/?$ cms/php/reset_action.php 

# Internally redirect all pages to index.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule . cms/index.php/$1?%{QUERY_STRING} [L] 

..

答えて

0

完全にも、1つの構文エラーを含む間違った「の.htaccess」ファイルを使用して、サーバーをクラッシュすることは非常に簡単です。 。バグが発生した場合には、単にファイルの名前を変更するか、それを

を削除し、私はこの問題は、ドットの後にスペースから来ていると思う:

RewriteRule . cms/index.php/$1?%{QUERY_STRING} [L] 

errordocument 404 /index.php 

:あなたはので、これを実行する必要があり、なぜ私は理解していなかった

、私はあなたにも、あなたがこの行を記述する必要があなたの.htaccessファイルに

をURL書き換えをシミュレートできることを通知しますそして、あなたのindex.phpファイルで、あなたはURL書き換えをシミュレートするために、これを書くことができます。

$url = $_SERVER['REQUEST_URI']; 

$url=substr($url,1,strlen($url)); // The page url that gave an error 404 

echo $url; 

次のあなたがしたい場合、あなたは404エラーを与えたページを作成し、ユーザーをリダイレクトすることができますそれまで

$handle = fopen($url.'/index.html', 'w'); 
fwrite($handle, 'hello world'); 
fclose($handle); 

header('location:'.$url); 
exit;