1. ホーム
  2. .htaccess

[解決済み] .htaccessファイルの$1 [QSA,L]は何を意味するのですか?

2022-11-08 01:11:13

質問

私の .htaccess を変更する必要があり、理解できない2つの行があります。

RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

これらの行はいつ使うべきですか?

どのように解決するのですか?

完全なチュートリアルを提供する場所ではないですが、ここでは簡単に説明します。

RewriteCond は、基本的にこれが真である場合にのみ次の RewriteRule を実行することを意味します" 。その !-l パスは、リクエストがリンクでないという条件 ( ! はそうでないという意味です。 -l はリンクを意味する)

RewriteRule にマッチするリクエストが行なわれた場合、基本的には ^(.+)$ (サーバルート以外の URL にマッチする) リクエストがあった場合、それを index.php?url=$1 というように書き換えられます。 olle は次のように書き換えられます。 index.php?url=olle ).

QSA は、元の URL で渡されたクエリー文字列があれば、 それがリライトの際に追加されることを意味します ( olle?p=1 のように書き換えられます。 index.php?url=olle&p=1 .

L は、もしルールがマッチしたら、これより下の RewriteRule を処理しないことを意味します。

これに関するより完全な情報については、上のリンクをたどってください。リライトのサポートは少し把握しにくいかもしれませんが、stackoverflowにかなり多くの例があり、そこから学ぶことができます。