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

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

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

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

Q&A

0回答

739閲覧

日本語のパラメータを含む動的ページのリダイレクト方法

burabura

総合スコア0

.htaccess

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

0グッド

0クリップ

投稿2021/10/29 02:28

編集2021/10/29 08:48

日本語パラメータを含むファイルを英文のディレクトリにリダイレクトしたいのですが、うまくいきません。いろいろなパターンを試していますが、認識されていないようです。

旧ページ
http://www.hogehoge.com/index.php?会社案内
新ページ
https://www.hogehoge.com/office/

RewriteEngine on
RewriteBase /
RewriteCond %{QUERY_STRING} ^会社案内$
RewriteRule ^(|index.php)$ https://www.hogehoge.com/office/? [R=301,L]

httpからhttpsへのリダイレクトは設定済みです。
会社案内を
%E4%BC%9A%E7%A4%BE%E6%A1%88%E5%86%85
にしたり、
\xE4\xBC\x9A\xE7\xA4\xBE\xE6\xA1\x88\xE5\x86\x85
にしてもうまく認識されません。
リダイレクトは何度かやっていますが、動的で日本語のパターンは初めてです。

アドバイスいただけると助かります。

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

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

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

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

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

yambejp

2021/10/29 02:30

PHPの転送ではだめなのでしょうか?
burabura

2021/10/29 03:45

今回、サーバ移転でドメインを移管しています。また、旧ページのあるサーバは他社で既に入れません。現状、検索でインデックスされているページは、暫定で、すべてサイトトップにリダイレクトされています。できれば、「会社案内」⇒「office」のように個別の対応ページにredirectさせたいと思っています。
yambejp

2021/10/29 03:50

> 旧ページのあるサーバは他社で既に入れません httpのサイトはもういじれないということであればどうやって飛んできた時点で もうhttpでつけたパラメータは受け取れないのでは? httpsとおなじhttpサーバーが別管理というの理解に苦しみます そもそもwww.hogehoge.comの部分がhttpとhttpsで違うurlなのでしょうか?
burabura

2021/10/29 04:21

説明不足ですいません。ドメインの移管です。A社で運用していたサイトをB社で運用することになりドメインを移管しています。A社で運用時はSSL非対応だったので、SSL対応のB社に引っ越すということになり、ドメインの管理会社も変更しています。ドメイン自体はhogehoge.comで同じです。DNSも切替済みで、httpで飛んできたものはhttpsに切り替えています。静的ファイルや動的なパラメーター付きの英文⇒英文のリダイレクトは問題なくいくのですが、日本語がうまくいきません。
otn

2021/10/29 05:48

http://www.hogehoge.com/index.php?会社案内 をブラウザのアドレスバーに入力すると、どうなりますか? どうならないかじゃなくて、どうなるかを見たまま解釈せずに書いてください。 Apacheのerror_logに情報があればそれも。
yambejp

2021/10/29 08:47

httpがhttpsに完全に飛ばされる仕様ならhttps側のindexでGETを使って処理すればよいのでは?
burabura

2021/10/29 09:16

RewriteCondが間違っていますか?申し越し具体的にご教授いただくと助かります。
burabura

2021/10/29 13:14

同じです。日本語も、エンコーディングされたコードでも16進数に変換しても、ダメです。検索結果の旧ページをクリックすると、アドレスバーにはhttps://www.hogehoge.com/index.php?会社案内とでています。表示されるページはhttps://www.hogehoge.com/です。
otn

2021/11/11 00:18

RewriteCond %{QUERY_STRING} ^~~~ の行を削除して、 https://www.hogehoge.com/index.php でどうなりますか? リダイレクトされないなら、RewriteCondの記述以前の問題ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問