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

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

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

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

.htaccess

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

Q&A

解決済

1回答

3298閲覧

.htaccess WordpressとPC・スマホ自動振り分けの記述

hio

総合スコア15

WordPress

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

.htaccess

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

0グッド

1クリップ

投稿2016/07/05 08:49

.htaccessでPCサイトとスマホサイトの自動振り分けの設定をしていたのですが、
そこにWordpressの記述を追加したところ、自動振り分けがされなくなってしまいました。

こちらは共存出来ないのでしょうか?
何か対策などありましたらご教授の程宜しくお願いいたします。

「.htaccess」

AddType application/x-httpd-php .php .html AddType application/x-httpd-php-source .phps DirectoryIndex index.html index.cgi index.php index.shtml RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{REQUEST_URI} !/sp/ RewriteCond %{HTTP_USER_AGENT} (iPod|iPhone|iPad|Android|Windows\ Phone) RewriteCond %{QUERY_STRING} !viewmode=pc RewriteCond %{REQUEST_URI} !(.jpg|.png|.gif)$ RewriteRule ^(.*\.(html|php))?$ sp/$1 [R] RewriteBase / </IfModule>

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

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

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

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

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

guest

回答1

0

ベストアンサー

RewriteRule は順番に評価されます。
ぱっと見た感じでは、Wordpress 用のルールで [L] (Last) フラグで終了してしまうので、sp/ 振り分けルールにたどり着かないのではないでしょうか。
sp/ 振り分けルールを先に書くとどうなりますか?

投稿2016/07/06 15:31

TaichiYanagiya

総合スコア12146

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

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

hio

2016/07/07 00:17

振り分けルールを先に書いたところ、「多くのリダイレクトが発生しています」となり、 スマホで見た際にページが表示されなくなってしまいました。
TaichiYanagiya

2016/07/07 01:06

リダイレクトループにならないようにルールを精査ください。 たとえば、『RewriteRule ^(.*\.(html|php))?$ sp/$1 [R]』を Wordpress 用のルールの前に設定するのであれば、[L] フラグを追加して、『RewriteRule ^(.*\.(html|php))?$ sp/$1 [R,L]』とするなど。 また、Wordpress 用の最後のルールで、ファイルがディレクトリが存在しない場合、index.php にリダイレクトしますが、sp/ は除外したい(Not Found で返したい)ということであれば、最初の方で『RewriteRule ^sp/ - [L]』のようなルールが必要かもしれません。
hio

2016/07/07 08:28

『RewriteRule ^(.*\.(html|php))?$ sp/$1 [R]』に[L] フラグを追加し、『RewriteRule ^(.*\.(html|php))?$ sp/$1 [R]』の「php」を削除することで表示が出来るようになりました。 丁寧なご説明で大変助かりました。 ご回答ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問