1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

.htaccessでハマった事メモ

Posted at

どうした

今までググってなんとなく書いてた.htaccess。
当たり前すぎて出てこない事とかハマった事をメモ程度に書き残しておく。
※ 間違ってることとか一杯ありそうだけど指摘貰えると有り難い

やっぱりちゃんと本読んだほうが良いよね……

RedirectMatchは変数が使えない

なんとなく使ってたRedirectMatch。
特定のディレクトリをhttpsの新パスに転送…という動作をさせたかったので
ググったら変数でホスト名だけ引っ張れば楽じゃね?と思い実行してみた。

RedirectMatch   permanent   /test/ https://%{HTTP_HOST}/xxxx/

結果は「https://%{HTTP_HOST}/xxxx/」がそのまま返ってくる。
ああ使えないんだ…
正規表現もうまく動かないのでwebを参考にRewriteRuleで記述してみることに。

RewriteRuleは行頭に/要らない

こんなのを書いて見たが全くマッチしない。

RewriteRule ^(/test/)$  %{HTTP_HOST}/xxxx/ [R=301,L]

なんでだお前どうした。さっきまでマッチはしてただろおい。

色々試行錯誤してみると

RewriteRule ^(test/)$  %{HTTP_HOST}/xxxx/ [R=301,L]

頭に**/**が要らないって言う。
こぴぺはダメだ。

RewriteRuleで変換後、URIスキームを付けないとローカルパスに

先程の定義で実行してみると結果が、
http://test.jp/home/user/www/test.jp/test/
は?っと見てみるとなんか足りない。

RewriteRule ^(test/)$  %{HTTP_HOST}/xxxx/ [R=301,L]

スキーム無い。
コピペしたんじゃねえのかよ

RewriteRule ^(test/)$  https://%{HTTP_HOST}/xxxx/ [R=301,L]

スキームを付けて実行した所期待どおりのURLに。
スキーム無いとローカル指すのか…

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?