2

次の書き換えルールがあります。

RewriteEngine on  
RewriteRule ^check/([^\/]+)/?$ check.php?id=$1 [L]

check/connected//// に行くと、check.php は接続済みとして表示します。しかし、書き換えルールに関する私の理解から、connected に複数の末尾のスラッシュを追加すると、一致しないはずです。

Check.php:

<?php
echo $_GET['id'];
?>
4

2 に答える 2

0

で URL 正規表現を照合する際に、複数/単一に取り除かれることに/注意してくださいRewriteRule。それが、この動作が見られる理由です。

/複数(たとえば2つ以上)に一致させたい場合は、次を使用する必要があります。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+check/[^/]+/{2,}
于 2013-09-23T13:39:53.017 に答える
0

ブラウザとサーバーの間のどこかで、連続するスラッシュが 1 つに凝縮されます。結局のところ、ファイル名を参照する通常の状況では、複数のスラッシュが連続していても意味がありません。

このため、.htaccess実際に入力した数ではなく、最後に 1 つのスラッシュしか表示されません。これが RewriteRule が機能する理由であり、結果が余分なスラッシュなしで単に「接続」されている理由でもあります。

于 2013-09-23T13:39:55.253 に答える