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

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

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

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

Q&A

解決済

2回答

9629閲覧

パラメーター付きURLをhtaccessで301リダイレクトさせたい

igaiga

総合スコア144

サーバ

サーバは、 クライアントサーバモデルにおいてクライアントからの要求に対し 何らかのサービスを提供するプログラムを指す言葉です。 また、サーバーソフトウェアを稼動させているコンピュータ機器そのもののことも、 サーバーと呼ぶ場合もあります。

0グッド

0クリップ

投稿2016/08/12 06:17

編集2016/08/19 06:35

###前提・実現したいこと
いつもお世話になっております。

以下の様なURLが外部サイトからリンクされているのですが、ページ自体が無くなっているのでリダイレクトさせたいと思います。
http://www.hoge.jp/topics.php?id=2505
http://www.hoge.jp/topics.php?id=2506
http://www.hoge.jp/topics.php?id=2507
http://www.hoge.jp/topics.php?id=2508
http://www.hoge.jp/topics.php?id=2509

上記のようにパラメーターが複数あるので、topics.phpが含まれる場合はトップページにリダイレクトさせたいです。

まずは、特定のパラメーターのみ以下のページを参考に
リダイレクトしたいのですが、この時点で動作していません。
http://welcart.seesaa.net/article/300080959.html

###htaccess内

RewriteEngine On RewriteCond %{REQUEST_URI} topics.php RewriteCond %{QUERY_STRING} ^id=2505 RewriteRule ^(.*)$ /? [R=301,L]

http://www.hoge.jp/topics.php?id=2509などのURLはすでに存在せず、古い被リンク元から404エラーを起こしているため、リダイレクトさせたいと思っています。

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

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

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

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

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

TaichiYanagiya

2016/08/12 09:36

実際に試した .htaccess を記載すると回答がつきやすいと思います。 OS、Apache httpd のバージョンも。
otn

2016/08/12 13:00

「?id=2505以降のパラメーターは多数あるので、topics.phpが含まれる場合はトップページにリダイレクトさせたいです。 」の意味がわからない。
guest

回答2

0

自己解決

説明がうまくできず、申し訳ございません。
下記でリダイレクトできました。追加したのは4行目。
RewriteEngine on
RewriteCond %{HTTPS} on
RewriteRule ^(.)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteRule ^topics.php(.
)$ /$1? [R=301,L]

「(.*)$」でtopics.php以降に何がついててもリダイレクトする。
「$1?」でパラメーターを削除してリダイレクトする。

投稿2016/09/20 08:57

igaiga

総合スコア144

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

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

0

.htaccess は合っていると思います。
mod_rewrite が使える環境なのか、.htaccess が使える環境なのか確認ください。
httpd.conf または httpd.conf から Include される設定ファイルに以下のような設定があればいいはずです。

LoadModule rewrite_module modules/mod_rewrite.so <Directory "/var/www/html"> (略) AllowOverride All (略) </Directory>

topics.phpが含まれる場合はトップページにリダイレクトさせたい

クエリストリングが付いても付かなくてもリダイレクトさせたいのであれば、RewriteCond %{QUERY_STRING} ^id=2505 行はなくてもいいと思います。

投稿2016/08/19 10:14

TaichiYanagiya

総合スコア12146

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問