私は私の.htaccessファイルでこれを持っている:RewriteRuleが一致しませんか?
RewriteEngine On
RewriteBase/
RewriteRule ^url/(.*)$ url.php?url=$1 [L]
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
なぜhttp://mydomain.ext/url/http://www.google.com/
は、最初のルールが、2番目に一致しない???
編集:最後の行をコメントアウトすると機能するようですが、もちろんそれはできません。どうしたの?
EDIT2:私はこのように変更した場合、それは動作します:
RewriteEngine On
RewriteBase/
RewriteRule ^url/(.*)$ url.php?url=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
予想通り、以前のバージョンでは動作しませんでした、なぜ誰もが説明できますか?
私の編集で 'RewriteCond%{REQUEST_FILENAME}を追加していただきありがとうございます!-f RewriteCond%{REQUEST_FILENAME}!-d'最後の行が同じ効果を持つように見える前に、あなたの解はより短くなります。 – Alfonso
@Alfonso:あなたのソリューションは私のものよりも一般的で、他の既存のファイルやディレクトリも除外します。 – Gumbo