- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccessでURLの一部を書き換えるには?)
.htaccessでURLの一部を書き換えるには?
このQ&Aのポイント
- .htaccessを使ってURLの一部を書き換える方法について教えてください。
- 具体的には、http://example.com/user/ランダムな文字列のディレクトリ/というURLをhttp://example.com/ランダムな文字列のディレクトリ/という形に書き換えたいです。
- 現在の.htaccessの設定では、新しいURLにリダイレクトされるだけで元のURLのデータが表示されません。どのようにすれば元のURLのデータが表示されるようになるでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
/user/無しの時は /user/有りへリダイレクト。 /user/有りの時は /user/無しへリダイレクト。 …。 どうなるかお分かりですね。普通に書いても無限ループを起こしてサーバエラーになってしまいますす。 いろいろ方法ありますが、一例として、リダイレクトされた場合にフラグを発行して判定する方法です。 RewriteEngine on #/user/で始まる場合 RewriteCond %{REQUEST_URI} ^/user/ #フラグ(My_Redirect)が無ければ飛ばす RewriteCond %{HTTP:My_Redirect} !yes RewriteRule ^user/(.+)$ http://example.com/$1 [QSA,L] #/user/なしの場合 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d #上に該当したら、リダイレクト前に判定用にフラグを足しておく RequestHeader set My_Redirect yes RewriteRule ^(.+)/?$ user/$1/ [L] 他 [ mod_rewrite 無限ループ ]で検索してみて下さい。
お礼
ご回答ありがとうございます! 試しに書き換えてみたところ、要望通りに動きました。 とはいえ意味がはっきりわかっていないので、「mod_rewrite 無限ループ」など調べながら理解を深めていこうと思います。 本当にありがとうございました!!