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

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

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

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

Q&A

2回答

300閲覧

.htaccessのリダイレクト設定が反映されない

hosoe

総合スコア9

.htaccess

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

0グッド

0クリップ

投稿2022/06/27 10:26

.htaccessを使用してリダイレクトを行いたいのですが、ネットで調べて下記記述で試しましたが反映されませんでした。

<IfModule mod_rewrite.c> RewriteEngine On RewriteRule ^testurl1/test.php /testurl2/test.html [R=301,L] </IfModule>

https://testurl1/test.php/→https://testurl2/test.html/
上記URLのようにリダイレクトを行いたいのですがどのような記述で書けば良いのでしょうか?

ネットの載っているページ単位のリダイレクトなども試しましたが反映されませんでした。

ドメイン/ public/ testurl1/ testurl2/ test.php test.html

少しわかりづらいですがこのような構造です。

ご教授お願いします。

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

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

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

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

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

CHERRY

2022/06/27 10:44

> https://testurl1/test.php/→https://testurl2/test.html/ 上記URLのようにリダイレクトを行いたいのですがどのような記述で書けば良いのでしょうか? testurl1 や testurl2 は、ドメイン名ですか? それとも example.com みたいなドメイン名の記載もれでしょうか?
guest

回答2

0

RewriteRule ^testurl1¥/test.php /testurl2/test.html [R=301,L]

/の前に¥が必要なきがします。

投稿2022/06/28 04:21

hanamako

総合スコア23

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

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

otn

2022/06/28 05:31 編集

要りません。そこに \ を書く意味が無い。 ^testurl1/test\.php と、.の前に \ を書くなら意味はあります(厳密には書くのが正しい)。
guest

0

https://testurl1/test.php/→https://testurl2/test.html/

だと、testurl1がホスト名に見えますが、お書きのディレクトリ構造を見るとディレクトリ名なので、URLの書き間違いですね。
https://example.com/testurl1/test.php/ → https://example.com/testurl2/test.html/
と言うことだとすると、public/.htaccessに下記を書けば良いかと思います。

Apache

1RewriteEngine On 2RewriteRule ^testurl1/test.php/$ /testurl2/test.html/ [R=301,L]

https://example.com/testurl1/test.php/ → https://example.com/testurl2/test.html/
もさらに間違っていて、
https://example.com/testurl1/test.php → https://example.com/testurl2/test.html
が正しいとすると、
お書きの記述で十分なはずですが、リダイレクトされないとすると、まず疑うのはタイプミスです。

あるいは、.htaccessが有効になっていないか。Apacheの設定ファイルをチェックしましょう。
設定ファイルが読めない場合の確認方法は、.htaccessaaaaのようなでたらめな文字列を書いて500 Internal Server Errorになれば有効になっていますが、エラーにならないと.htaccessが無効と言うことです。

また、<IfModule mod_rewrite.c></IfModule>は削除しておきましょう。

念のためですが、RewriteRule ^testurl1/test.php /testurl2/test.html [R=301,L]は、ブラウザのアドレスバーにhttps://example.com/testurl1/test.phpと打ち込むと、アドレスバーの内容がhttps://example.com/testurl2/test.htmlに書き換わって、書き換え後のURLの中身が表示されるということですが、認識は合ってますか?

投稿2022/06/27 11:09

otn

総合スコア84557

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問