📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)
| (同じ利用者による、間の2版が非表示) | |||
| 198行目: | 198行目: | ||
RewriteRule ^ - [L] | RewriteRule ^ - [L] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | |||
また、OR条件の場合のみ、複数の<code>RewriteCond</code>ディレクティブを1つにまとめることが可能である。<br> | |||
<br> | |||
以下の例では、<code>|</code> (パイプ) を使用して、OR条件を使用している。<br> | |||
これにより、リクエストURIに"osaka"または"osk"が含まれている場合にマッチする。<br> | |||
<br> | |||
<u>※注意</u><br> | |||
<u>複数の条件を1行にまとめる場合は、OR条件 (<code>|</code>) のみが可能である。</u><br> | |||
<u>AND条件は、複数の<code>RewriteCond</code>ディレクティブを別々の行に記述することにより表現する。</u><br> | |||
<br> | |||
<syntaxhighlight lang="apache"> | |||
RewriteCond %{REQUEST_URI} osaka|osk | |||
# 3つの条件のいずれかに該当する場合にリダイレクトを行う | |||
RewriteCond %{REQUEST_URI} Qt|QML [NC,OR] | |||
RewriteCond %{THE_REQUEST} \s(Qt|QML) [NC,OR] | |||
RewriteCond %{QUERY_STRING} Qt|QML [NC] | |||
RewriteRule ^(.*)$ </path/to/redirect> [L,R=301] | |||
</syntaxhighlight> | |||
<br> | |||
1つにまとめる場合、以下に示すようなメリットがある。<br> | |||
ただし、パフォーマンスに大きな影響を与えるものではないため、可読性を重視する場合は別々に記述しても構わない。<br> | |||
* コードがより簡潔になる。 | |||
* パフォーマンスが若干向上する可能性がある。 (1回の条件チェックで済むため) | |||
<br> | <br> | ||
| 366行目: | 390行目: | ||
<br> | <br> | ||
==== 全角文字の取り扱い ==== | ==== 全角文字の取り扱い ==== | ||
. | .htaccessファイルでは、以下に示す理由から、全角文字の使用は非推奨である。<br> | ||
* エンコーディングの問題 | * エンコーディングの問題 | ||
*: .htaccessファイルは通常ASCII文字セットで保存される。 | *: .htaccessファイルは通常ASCII文字セットで保存される。 | ||
| 376行目: | 400行目: | ||
* URLエンコーディング | * URLエンコーディング | ||
*: URLには通常ASCII文字のみが使用されるため、全角文字はURLエンコードされる必要がある。 | *: URLには通常ASCII文字のみが使用されるため、全角文字はURLエンコードされる必要がある。 | ||
< | <br> | ||
そのため、以下に示すようにURLエンコードされた文字列を使用する必要がある。<br> | そのため、以下に示すようにURLエンコードされた文字列を使用する必要がある。<br> | ||
<syntaxhighlight lang="apache"> | <syntaxhighlight lang="apache"> | ||
| 382行目: | 406行目: | ||
RewriteCond %{REQUEST_URI} "%E3%81%BB%E3%81%92" [OR] | RewriteCond %{REQUEST_URI} "%E3%81%BB%E3%81%92" [OR] | ||
RewriteCond %{THE_REQUEST} \s"%E3%81%BB%E3%81%92" [OR] | RewriteCond %{THE_REQUEST} \s"%E3%81%BB%E3%81%92" [OR] | ||
RewriteCond %{QUERY_STRING} "%E3%81%BB%E3%81%92" | RewriteCond %{QUERY_STRING} "%E3%81%BB%E3%81%92" | ||
</syntaxhighlight> | </syntaxhighlight> | ||
<br> | <br> | ||
| 388行目: | 412行目: | ||
<br> | <br> | ||
もし全角文字の使用が絶対に必要な場合は、Apacheの設定でUTF-8エンコーディングが正しく処理されることを確認する。<br> | もし全角文字の使用が絶対に必要な場合は、Apacheの設定でUTF-8エンコーディングが正しく処理されることを確認する。<br> | ||
ただし、上記の理由から、可能な限りURLエンコードされた文字列を使用することを強く推奨する。<br> | <br> | ||
<u>ただし、上記の理由から、可能な限りURLエンコードされた文字列を使用することを強く推奨する。</u><br> | |||
<br><br> | <br><br> | ||