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

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

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

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

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

Q&A

解決済

1回答

2595閲覧

htaccessによるリダイレクト

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

リダイレクト

プログラムの入力元や出力先を通常とは別の場所に転送させることをリダイレクトと呼びます。

.htaccess

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

0グッド

2クリップ

投稿2016/07/20 00:48

編集2016/07/20 03:42

サイトをWordpressに移行したことによりサイトのURLが変更になりました。
htaccessにより一括でリダイレクトをしたいのですが上手くいきません。

具体的には以下のように旧URLから拡張子を削除した新URLにリダイレクトさせたいです。
例)http://example.com/category/aaa.html -> http://example.com/category/aaa

以下の様なコードでいけると思っていたのですが上手く行きません。

# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /wp/ RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp/index.php [L] </IfModule> # END WordPress RewriteEngine on RewriteBase / RewriteRule ^(.*)\.html$ /$1 [R=301,L]

詳しい方、ご教授お願い致します。

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

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

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

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

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

A.Ichi

2016/07/20 01:20

apacheには、modules/mod_rewrite.soの設定はされているのでしょうか?
退会済みユーザー

退会済みユーザー

2016/07/20 01:26

ご返信ありがとうございます。 サーバー等にあまり詳しくないので良くわからないのですが、個別にページのRedirectは上手く動いている状況です。 RewriteEngine on RewriteBase / RewriteRule ^(.*)\.html$ /$1 [R=301,L] 現在は上記のようになっているのですが、RewriteRuleを使用の場合は別途apacheの設定が必要なのでしょうか?
shi_ue

2016/07/20 01:46

もしあなたが hoge.com の所有者でないなら、example.com に変更なさってください。実在のドメインです。
退会済みユーザー

退会済みユーザー

2016/07/20 01:50

失礼致しました。 ドメイン修正しました。
退会済みユーザー

退会済みユーザー

2016/07/20 03:05

.htaccessに記載している内容すべて示したほうがアドバイスしやすいです。
退会済みユーザー

退会済みユーザー

2016/07/20 03:24

.htaccess全文載せました。 よろしくお願い致します。
退会済みユーザー

退会済みユーザー

2016/07/20 03:41

コード部分は「```」バッククオート3つ、で囲ってほしい、です。
退会済みユーザー

退会済みユーザー

2016/07/20 03:43

修正しました。 ご教授よろしくお願い致します。
guest

回答1

0

ベストアンサー

<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp/index\.php$ - [L] RewriteRule ^index\.php$ - [L] RewriteRule ^(.*)\.php$ $1 [R=301,L] RewriteRule ^(.*)\.html$ $1 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wp/index.php [L] </IfModule>

phpとhtmlの拡張子を消してリダイレクトする。

投稿2016/07/20 04:03

編集2016/07/20 14:31
shi_ue

総合スコア4437

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

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

退会済みユーザー

退会済みユーザー

2016/07/20 04:45

ご回答ありがとうございます。 試しましたがやはりダメでした。
shi_ue

2016/07/20 05:28 編集

やってみましたが、/category/test.html ちゃんと/wp/index.phpに引き渡され、 REQUEST_URI は /category/test になっているので、wordpressにも引き渡されるはずです。 ちゃんとドキュメントのルートに置いてますか?categoryに置いたらだめですよ。 さらに、だめでした、うまくいきません、では状況が分かりません。どのようになっているか詳しく教えてください。
退会済みユーザー

退会済みユーザー

2016/07/20 08:25

ご返信ありがとうございます。 不慣れですみません。 設置場所はWordpressインストールフォルダ(/wp/)内です。 ダメというのは、/category/test.htmlにアクセスして/category/testにリダイレクトされるのを想定していますが、リダイレクトされず、404エラーになります。 (404.phpが無いのでトップページにリダイレクトされます) その他必要な情報等ありましたらご教授頂ければと思います。
shi_ue

2016/07/20 08:32

ドキュメントルートに( / )に置いてみてください。
退会済みユーザー

退会済みユーザー

2016/07/20 09:41

置いてみましたが結果は同様(404エラー)でした。 ちなみに、 ``` Redirect /aaaaaa/ http://example.com/bbbbb/ ``` 上記のような個別リダイレクトは効いていました。
退会済みユーザー

退会済みユーザー

2016/07/20 10:47

ご回答ありがとうございます。 説明足らずで申し訳ございません。 旧アドレスのhttp://example.com/category/aaa.html は存在しません。 上記のアドレスでアクセスした場合に拡張子(.html)を削除して新URLにリダイレクトさせたいのですが、RewriteRuleが上手くきいておらず、http://example.com/category/aaa.htmlにアクセスされてしまうため、404エラーが起きていると思われます。
shi_ue

2016/07/20 10:53

最初にhtml拡張子の書き換えをしてから、wordpressの書き換えを実行するようにしてみました。 今度はどうですか?
退会済みユーザー

退会済みユーザー

2016/07/20 11:53

ご回答ありがとうございます。 上記の件で無事.html拡張子の削除が出来ました。 .phpファイルも同様に行いたい(拡張子を削除してリダイレクト)と思ったのですが、 RewriteRule ^(.*)\.php$ /$1 [R=301,L] とやったところ、Wordpressが上手く動かなくなってしまいました。(当然ですが。。) wordpressの書き換えを実行後に拡張子を削除してリダイレクトが出来れば良いのですが。 お手数ですが、ご教授お願い頂ければと思います。
退会済みユーザー

退会済みユーザー

2016/07/21 02:32

ソース修正ありがとうございます! こちらにて再度テスト致します!
退会済みユーザー

退会済みユーザー

2016/07/21 06:52

修正いただいたソースで希望通りの動作が確認できました。 ありがとうございました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問