Apache リライトについて質問する
PHPz
PHPz 2017-05-16 17:04:19
0
3
748

書き換え後にスラッシュが抜けている理由がわかりません

以下は go.php コードです

リーリー

書き換えルールは以下の通りです

リーリー
PHPz
PHPz

学习是最好的投资!

全員に返信(3)
巴扎黑

参考 Apache が複数のスラッシュを削除するのはなぜですか?
@Pekka 웃 さんは、URI 内の複数の隣接する /不符合RFC标准,@Pekka 웃 猜测Apache被设计为将多个相邻的/ が 1 つにマージされていることを指摘しました。


同様に、調べてみると、nginxにはmerge_slashesという設定があり、リクエストURI内の隣接する2つ以上のスラッシュを1つにマージする機能を有効または無効にするために使用されますデフォルトの設定はTurnです。 に。 Apache と nginx はデフォルトで URI 内の複数の隣接する / を処理する際に一貫した動作をしており、どちらも RFC 標準に従っていることがわかります。


http://localhost/go.php?url=http://www.163.com/ の // については、1 つにマージされていませんが、 http://localhost/go/http://www.163.com/ の // は 1 つにマージされており、前者は RFC 標準に準拠していますが、後者は準拠していません。

私は RFC 標準を深く理解していないため、上記の記述は厳密さが不十分である可能性があります。間違いがある場合は、ご指摘ください。しかし、この程度の理解ができれば、ほぼ十分だと思います。書き換えルールやコードの変更方法については、自分でググってください。

いいねを押す +0
漂亮男人

http://php.net/manual/zh/function.urldecode.php

いいねを押す +0
巴扎黑

Apache がパス内の // 化简成一个 / を削除したと思います。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート