• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:.htaccessでURLの一部を書き換えるには?)

.htaccessでURLの一部を書き換えるには?

このQ&Aのポイント
  • .htaccessを使ってURLの一部を書き換える方法について教えてください。
  • 具体的には、http://example.com/user/ランダムな文字列のディレクトリ/というURLをhttp://example.com/ランダムな文字列のディレクトリ/という形に書き換えたいです。
  • 現在の.htaccessの設定では、新しいURLにリダイレクトされるだけで元のURLのデータが表示されません。どのようにすれば元のURLのデータが表示されるようになるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.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 無限ループ ]で検索してみて下さい。

drm54
質問者

お礼

ご回答ありがとうございます! 試しに書き換えてみたところ、要望通りに動きました。 とはいえ意味がはっきりわかっていないので、「mod_rewrite 無限ループ」など調べながら理解を深めていこうと思います。 本当にありがとうございました!!