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

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

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

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

.htaccess

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

Q&A

1回答

678閲覧

Wordpressサイトで上の階層から下の階層へリダイレクト

peony_queen88

総合スコア10

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

.htaccess

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

0グッド

1クリップ

投稿2018/10/02 03:00

前提・実現したいこと

wordpressサイトにて、

http://example.com/wp_dev/product/

http://example.com/wp_dev/product/xxx/
へのリダイレクト

http://example.com/wp_dev/product/のページ自体は存在しています。
諸事情により削除、非公開はできません。

発生している問題・エラーメッセージ

500 Internal Server Error

該当のソースコード

htaccess

1<IfModule mod_rewrite.c> 2RewriteEngine on 3RewriteBase /wp_dev/ 4RewriteRule ^product product/xxx/ [L] 5</IfModule> 6 7#SITEGUARD_PLUGIN_SETTINGS_START 8#==== SITEGUARD_RENAME_LOGIN_SETTINGS_START 9<IfModule mod_rewrite.c> 10 RewriteEngine on 11 RewriteBase /wp_dev/ 12 RewriteRule ^wp-signup.php 404-siteguard [L] 13 RewriteRule ^wp-activate.php 404-siteguard [L] 14 RewriteRule ^login_77593(.*)$ wp-login.php$1 [L] 15</IfModule> 16#==== SITEGUARD_RENAME_LOGIN_SETTINGS_END 17#SITEGUARD_PLUGIN_SETTINGS_END 18 19# BEGIN WordPress 20<IfModule mod_rewrite.c> 21RewriteEngine On 22RewriteBase /wp_dev/ 23RewriteRule ^index.php$ - [L] 24RewriteCond %{REQUEST_FILENAME} !-f 25RewriteCond %{REQUEST_FILENAME} !-d 26RewriteRule . /wp_dev/index.php [L] 27</IfModule> 28 29# END WordPress

試したこと

/wp_dev/のフォルダに設置してある.htaccessに上記コードを追加しました。
1〜5行目までが今回追加した部分です。
それ以外は元から入っていたものになります。
上の階層へのリダイレクトは結構解説もあったのですが、
下の階層へのリダイレクトがうまく行きません。
サーバーエラーか無限リダイレクトになってしまいました。

補足情報(FW/ツールのバージョンなど)

wordpressのバージョン 4.4.16
/wp_dev/はテストサイトで、
サーバーの同階層に/wordpress/があり、そちらが本番サイトです。
ただし、本番サイトのURLはドメインのルート階層になってます。
最終的には本番サイトで
http://example.com/product/

http://example.com/product/xxx/
へのリダイレクトが目的です。

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

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

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

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

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

CHERRY

2018/10/04 07:14

「500 Internal Server Error」だけでは、エラー原因が判断できないので、Web サーバーのエラーログにどのようなメッセージが出ているか追記していただけないでしょうか?
guest

回答1

0

質問にあった書き方では、リダイレクトがループしているんじゃないかと推測しますが、はっきりとした原因はサーバーのエラーログを確認する方がいいと思います。

.htaccess に書く以外の解決方法になってしまうのですが、
http://example.com/wp_dev/product/
が存在しているのなら、これを表示しているテンプレートに、条件分岐などを書いて、下記のコードを利用するのはいかがでしょうか。

PHP

1<?php 2wp_redirect( $location, $status ); 3exit; 4?>

詳しい使い方はこちらを参考にしてください。
https://wpdocs.osdn.jp/関数リファレンス/wp_redirect

.htaccess に書くのとの違いは、リダイレクトの処理が遅いこと、になるでしょうか・・・(その違いが知覚できるレベルなのかどうかわわかりませんが)
参考:http://www-creators.com/archives/1012

投稿2018/10/07 02:38

marlboro_tata

総合スコア525

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問