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

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

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

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

.htaccess

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

Q&A

解決済

2回答

1841閲覧

.htaccessでwordpressのurlをリダイレクトさせたい

southern_flavor

総合スコア70

WordPress

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

.htaccess

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

0グッド

0クリップ

投稿2019/03/14 13:24

解説

例としてhttps://hoge.com/というサイトがあり、ルートに.htaccessを置いてリダイレクトをかけています。

https://hoge.com/

https://hoge.com/wp/
こんな感じです。

また、現在のwordpress設定は、サイトアドレス、WordPressアドレスともにhttps://hoge.com/wp/**となっています。
単純にサイトアドレスを
https://hoge.com/**にすれば良かったのですが、その時はwordpressの知識が乏しい状態だったのでリダイレクトの方法を使っていました。
また、現在はサイトアドレスを**https://hoge.com/**にしてテスト環境で試していますが、記事ページは勝手にリダイレクトしてくれます。
しかし、**https://hoge.com/wp/**から**https://hoge.com/**にリダイレクトさせたいのですがうまくいきません。

やりたいこと

.htaccessでURLの
/wp/
の部分をとりたいです。

https://hoge.com/wp/fuga/foo/
https://hoge.com/wp/fuga/
https://hoge.com/wp/

https://hoge.com/fuga/foo/
https://hoge.com/fuga/
https://hoge.com/
にしたいです。

現在と設定変更中の.htaccessコードとディレクトリ構成

以前

RewriteEngine on RewriteCond %{HTTP_HOST} ^(hoge.com)(:80)? [NC] RewriteRule ^(.*) https://hoge.com/wp/$1 [R=301,L]
public_html/  └ wp/  ├ wp-includes/  ├ wp-admin/    ├ wp-content/ └ index.php  └ .htaccess

現在、設定変更中のディレクトリ構成とコード

public_html/  ├ wp/  ├ wp-includes/  ├ wp-admin/  │ └ wp-content/  ├ index.php  └ .htaccess
<IfModule mod_rewrite.c> RewriteEngine On RewriteRule jp/(.*) $1 [R=301] RewriteCond %{HTTP_HOST} ^www.(.*) [NC] RewriteRule ^ https://%1%{REQUEST_URI} [L,R=301] RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] </IfModule>

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

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

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

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

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

guest

回答2

0

自己解決

自己解決できました。

サイトアドレス:https://hoge.com/
wordpressアドレス:https://hoge.com/wp/

一旦この設定をしました。
すると、記事ページ、投稿ページ、トップページは問題なくリダイレクトします。

一つ問題があり、アーカイブページのみ想定通りにリダイレクトがされませんでした。
アーカイブページには、functions.phpに
404で判定させてからurlを取得し、str_replaceでurl文字列の置換してからwp_safe_redirectでリダイレクトさせることで問題なくできました。
php 7.2.4で確認済みです。

php

1add_action( 'template_redirect', 'cat_change_url' ); 2function cat_change_url() { 3 if ( is_404() ) { 4 $http = is_ssl() ? 'https' : 'http' . '://'; 5 $url = $http . $_SERVER["HTTP_HOST"] . "/wp" . $_SERVER["REQUEST_URI"] ; 6 $replace_url = str_replace( "/wp" , "" , $url ); 7 8 wp_safe_redirect( $replace_url ); 9 exit(); 10 } 11}

投稿2019/03/19 06:53

編集2019/03/19 06:55
southern_flavor

総合スコア70

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

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

0

引用元

<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^(example1.com)(:80)? [NC] Redirect permanent /wp/ / RewriteRule ^(.*) https://example2.com/$1 > [R=301,L] </IfModule>

投稿2019/03/14 23:50

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

southern_flavor

2019/03/15 02:54

ご回答ありがとうございます。 サイトのルートにある.htaccsseにて試してみたのですが、500エラーになってしまいました。 この他になにか対策はないでしょうか。
退会済みユーザー

退会済みユーザー

2019/03/17 12:16

.htaccessでは? 名前は間違えていませんか?
southern_flavor

2019/03/19 06:47

すみません。 上のは書くときに単にスペルミスしただけでした。 強引なやり方ですが、自己解決できました。 ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問