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

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

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

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

PHP

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

.htaccess

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

Q&A

解決済

1回答

705閲覧

WordPressモバイル用サイトでサイト内検索をすると404エラーになる

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

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

PHP

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

.htaccess

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

0グッド

0クリップ

投稿2018/08/08 14:02

編集2018/08/13 06:18

前提・実現したいこと

WordPressで.htaccessを使用してPCサイトとモバイルサイトそれぞれにビジターを誘導しています。
「サイト名.com/」の直下でサイト内検索を行いたいのですが、モバイルサイトで検索するとPCサイトから検索した時のように「サイト名.com/?s=検索ワード」のようにならず、「サイト名.com/sp/?s=検索ワード」のように処理されてしまい、404エラーになってしまいます。
一つ上のディレクトリを指定、もしくはサイトのトップページを指定して検索させるにはどのようにしたらよろしいのでしょうか?

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

PCサイトでは、問題なくサイト内検索できる。
モバイルサイトでは、「/sp」をフロントページにしているため、その中でサイト内検索されてしまう。404エラーで、ページが見つかりませんの表示が出る。

該当のソースコード

PHP(searchform.php)

<form method="get" id="searchform" action="<?php echo home_url('/'); ?>"> <input type="text" placeholder="<?php echo get_theme_text_search_placeholder();//検索ボックスのプレースホルダテキストを取得 ?>" name="s" id="s"> <input type="submit" id="searchsubmit" value=""> </form>

.htaccess

~略~
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteRule ^$ /sp/ [R,L]
</IfModule>

試したこと

http://45395.org/cms/wordpress/wordpress-internal-search-not-working/
searchform.php内のactionに上記の記事の内容を代入したが、上手くいかず。

###利用している環境
WordPress 4.9.8

###2018年8月13日追記
私の質問の書き方が誤解を非常に招きやすい書き方であり、混乱させてしまい申し訳ありません。
私自身、文章を見返して非常に意味不明な箇所がありましたので、修正させていただきました。

追記ですが、スマホ・携帯からアクセスしてきた場合は専用ページに飛ばしたいのでリダイレクトをしています。
個人的に怪しい部分はPHP(searchform.php)の

<form method="get" id="searchform" action="<?php echo home_url('/'); ?>"> の「action=""」だと睨んでいるのですが、不具合無しで動いてくれればいいので PHP、.htaccessどちらかで編集して動いてくれればよいと考えています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Webサイトの構成がよくわからないのですが、モバイルサイト用のリダイレクト

{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
RewriteRule ^$ /sp/ [R,L]

を無効にして、http://example.com/sp/ から検索した場合、検索は正しく動作するのでしょうか?

モバイルサイト用のリダイレクトを停止したら、正しく動作するのであれば、リダイレクトの条件に

RewriteCond %{QUERY_STRING} !(^|&)s=(.*)

あたりを追加すれば、動作しないでしょうか?

投稿2018/08/12 22:14

編集2018/08/13 01:11
CHERRY

総合スコア25171

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

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

退会済みユーザー

退会済みユーザー

2018/08/13 01:01

ご回答ありがとうございます。 はい、リダイレクトを無効にして検索した場合、検索は正しく動作します。 しかし、 RewriteCond %{} !(^|&)s=(.*) を記入すると記述位置が悪いのか、500エラーCGI負荷が大きいというエラーが出て WordPressそのものが表示されなくなってしまいます...。 .htaccessは全く触ったことがないので、どのの位置に記入したら きちんと表示されるのかが分かりません...。 >Webサイトの構成がよくわからない PCからアクセスした場合は 「http://example.com/」、 携帯からアクセスした場合は 「http://example.com/sp/」に誘導し、携帯用のページはhttp://example.com/sp-任意の英数字/」で誘導しています。 あくまでも、「/sp/」はWordPressの固定ページの一つだということです。
CHERRY

2018/08/13 01:12

すいません。 ちょっと原因がわかりませんが、${QUERY_STRING} と記載していた部分が、なぜか ${} になっていたようです。 修正しました。 記載位置は、 「RewriteRule ^$ /sp/ [R,L]」の前の行あたりでしょうか。
退会済みユーザー

退会済みユーザー

2018/08/13 06:08

続けてのご回答、ありがとうございます。 RewriteCond %{QUERY_STRING} !(^|&)s=(.*) を {HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC] 【ここ】 RewriteRule ^$ /sp/ [R,L] に記述して動かしてみましたが、やはり先ほどと同じように500エラーになってしまいます。 他に原因があるのでしょうか...。
退会済みユーザー

退会済みユーザー

2018/08/18 00:45

再度試しましたら、解決しました! 500エラーになったのが不明ですが...。 大変助かりました、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問