1. ホーム
  2. html

[解決済み] URLでの`%3F`の使用について

2022-03-02 18:08:12

質問

私が構築したのではないウェブサイトを移動する際、以下のような使い方に出くわしました。 %3F .

%3F パーセントエンコード のバージョンです。 ? .

このような使い方が多いようです。

<ahref="example%3Flang=1.html">Example</a>

という名前のファイルにリンクする場合 example_lang=1.html .

そこで %3F_ で、すべて正常に動作するようになりました。

私はここで何かを見逃しています。古いウェブサイトは機能していました。移転後、機能しなくなった。の置き換えの後 %3F から _ の場合、リンクは再び機能しました。なぜでしょうか?

解決方法は?

まず、あなたの質問をよりよく理解するために詳しく説明する必要があります。 私が正しく理解できたなら、これが答えかもしれません。

"_"は予約されたURI文字ではありません。

3Fは"?"のために予約されているとのことですが、wikiのドキュメントを読むと、"_"(アンダースコア)はURI予約文字ではないことが書かれています。

そのため、例えばウェブページの URL が " example_test.html であれば、そのエンコードされたURLは「"」でなければなりません。 example_test.html もし、そのURLに何らかのメカニズムが適用されていない場合は、"。それでは、あなたの質問に答えられるような PHP ベースの Web ページの例を挙げてみましょう。

PHPには"" "という関数があります。 str_replace これは、プログラマが定義した文字または文字列で文字列を置き換えるために使用されます。

例えば、quotという名前のページがあるとします。 example_test.html を、何らかの理由で "に変更したいと思います。 例%3Ftest.html "を使用することができます。

str_replace("%3F","_","<a href='example%3Ftest.html'>Example Test</a>");

この関数は、" のすべての出現箇所を検索します。 %3F で置き換え、"" _ 提供された文字列(ここでは、" href=example%3Ftest.html。 ")と出力されます。 href='example_test.html'です。 これは、私のファイルへの実際のリンクです。