RewriteRule ^(.*)$ Main.php?Page=$1.php [QSA,L]
あなたはURLを書き換える前に、必ずMain.php
にまだなっていないようにする必要があります。あなたは、元の要求にクエリ文字列を渡していない場合QSA
フラグを削除
# (1) If requesting a ".php" file (including "Main.php")
# or any known static resource then stop here...
RewriteRule \.(php|css|js|jpe?g|png|gif)$ - [L]
# (3) Otherwise, if the request doesn't map to an existing file then rewrite to Main.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) Main.php?Page=$1.php [QSA,L]
:それは
のようなものを試してみてください... Main.php?Page=Main.php.php&Page=Main....
などのループで得られる電流であるものです。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
.php
拡張子を付加あなたの以前のディレクティブは、そうでない場合、これはすべての非phpの要求に.php
を追加します、.php
を追加することは有効なリクエストになりますことを確認しなければならないと決してありませんMain.php
に届きます。何かのように:
# (2) Append ".php" if there is no extension
# but only if appending ".php" would result in a valid request
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^.]+)$ $1.php [L]
文字クラスのドットをエスケープする必要はありません。ここではNC
フラグは必要ありません。
概要:だから、一緒にこれを持参我々が持っている:
# (1) If requesting a ".php" file (including "Main.php")
# or any known static resource then stop here...
RewriteRule \.(php|css|js|jpe?g|png|gif)$ - [L]
# (2) Append ".php" if there is no extension
# but only if appending ".php" would result in a valid request
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^.]+)$ $1.php [L]
# (3) Otherwise, if the request doesn't map to an existing file then rewrite to Main.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) Main.php?Page=$1.php [QSA,L]
UPDATE#2:のみ.php
にLogin
、index
とSignup
、代わりに存在する任意のファイルを追加します。 その他すべて(存在しないファイルを含む)はMain.php
に書き換えられます。
# (2) Append ".php" to select requests
# but only if appending ".php" would result in a valid request
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(Login|index|Signup)$ $1.php [L]
# (3) Otherwise, rewrite everything else to Main.php
RewriteRule (.*) Main.php?Page=$1.php [QSA,L]
こんにちは、ありがとう。あなたはメイン以外のどのページでもこれが動作すると言っていますが、これは配列にすることはできますか?私はこれが仕事であることを望んでいない2ページがあるので。 @ w3dk – Liam
これがLogin.phpとindex.phpの動作を停止したためです。 – Liam
最初からMain.phpをロードしようとしています。 – Liam