0
0

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 1 year has passed since last update.

.htaccessのリダイレクトと除外条件でドツボにハマった話(備忘録)

Last updated at Posted at 2022-09-13

きっかけ

お客様から、サイトの閉鎖にともなうリダイレクトの設定の要望があった。
要件は閉鎖するサイトAのすべてのページへのアクセスをサイトBのトップページにリダイレクトする。というもの。
ただし、これには隠れ要件があって、一部のディレクトリへのアクセスを除外しなくてはいけない。
サーバ周り初心者の私にはこれが結構曲者でした。

まずは

.htaccessを使ったリダイレクトは該当サイトで結構やっていて、「まあ今回も RedirectMatch ~ って書けばいけるやろ」と思っていた。最初は。
なので、該当ディレクトリ直下の.htacccessにこんな感じに書いてみたものの、思うように動作しない。

RewriteCond %{REQUEST_URI} !(^/除外するディレクトリパス/)
RedirectMatch permanent ^(.*)$ https://testsite/

リダイレクト自体は成功しているものの、除外条件がうまく動作せず、すべてのアクセスがサイトBにリダイレクトされてしまう。
色々試行錯誤してみたものの、何回試してもRewriteCondがうまく働いてないっぽい。

そもそもこれ本当にリダイレクトになってる????
…大変疑わしくなってきた。

そこでこんな記事を見つけて
image.png

そこで該当ディレクトリ直下の.htacccessには最終的にこんな形で冒頭部に追記。
なんとかかんとか要望通りの挙動を実現することができました。

RewriteEngine On
RewriteCond %{REQUEST_URI} !(^/除外するディレクトリパス/)
RewriteRule ^(.*)$ https://testsite/ [R=302,L]

参考
https://www.javadrive.jp/apache/htaccess/index4.html#section1_4

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?