質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

410閲覧

htaccessで連続でリダイレクトを行ないたい

_hachimitsu

総合スコア1

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2022/12/02 01:16

質問内容

.htaccess でリダイレクトを2回処理したく、色々試しているのですが上手く行かないので、質問したいです。


https://example.com/xxx/aaa/aaa-01/https://example.com/xxx/bbb/
にリダイレクト処理をしたく

htaccess

1RewriteEngine on 2RewriteRule ^xxx/aaa/aaa-01/(.*)$ /xxx/bbb/$1 [L,R=301]

と記述していましたが、クライアントから[https://example.com/xxx/aaa/aaa-01(最後の"/"なし)]でアクセスした場合でも[https://example.com/xxx/aaa/aaa-01/]にリダイレクトされてから[https://example.com/xxx/bbb/]にまたリダイレクトしてほしいと要望され、

htaccess

1RewriteEngine on 2RewriteRule ^xxx/aaa/aaa-01 /xxx/aaa/aaa-01/ [R=301] 3RewriteRule ^xxx/aaa/aaa-01/ /xxx/bbb/ [L,R=301]

と記述してみましたが、
[https://example.com/xxx/aaa/aaa-01] → [https://example.com/xxx/aaa/aaa-01/] はリダイレクトされるものの、
[https://example.com/xxx/aaa/aaa-01/] → [https://example.com/xxx/bbb/] はリダイレクトされません。


実現したいこと

■[https://example.com/xxx/aaa/aaa-01] でアクセスした場合
[https://example.com/xxx/aaa/aaa-01] → [ttps://example.com/xxx/aaa/aaa-01/] にリダイレクトしてから
[https://example.com/xxx/aaa/aaa-01/] → [https://example.com/xxx/bbb/] にリダイレクトする。

■[https://example.com/xxx/aaa/aaa-01/] でアクセスした場合
[https://example.com/xxx/aaa/aaa-01/] → [https://example.com/xxx/bbb/] にリダイレクト


該当のソースコード

htaccess

1# ------------ 2# リダイレクト 3# ------------ 4RewriteEngine on 5 6RewriteRule ^xxx/aaa/aaa-01 /xxx/aaa/aaa-01/ [R=301] 7RewriteRule ^xxx/aaa/aaa-01/ /xxx/bbb/ [L,R=301]

どうぞよろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

^xxx/aaa/aaa-01だと「この文字列で始まるパス」なので、/xxx/aaa/aaa-01/も該当して、
RewriteRule ^xxx/aaa/aaa-01 /xxx/aaa/aaa-01/ [R=301]
を繰り返しませんか?
[https://example.com/xxx/aaa/aaa-01] → [https://example.com/xxx/aaa/aaa-01/]
[https://example.com/xxx/aaa/aaa-01/] → [https://example.com/xxx/aaa/aaa-01/]
[https://example.com/xxx/aaa/aaa-01/] → [https://example.com/xxx/aaa/aaa-01/]
・・・・・

末尾を示す$が必要です。
最初のコードが/xxx/aaa/aaa-01/foo/bar/xxx/bbb/foo/barにリダイレクトするので、その部分を残すと、

Apache

1RewriteEngine on 2RewriteRule ^xxx/aaa/aaa-01$ /xxx/aaa/aaa-01/ [L,R=301] 3RewriteRule ^xxx/aaa/aaa-01/(.*) /xxx/bbb/$1 [L,R=301]

投稿2022/12/02 04:00

otn

総合スコア84542

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

_hachimitsu

2022/12/02 04:37

ありがとうございます! 上記のコードで無事解決しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問