質問: ### 前提・実現したいこと WordPressで.htaccessを使用してPCサイトとモバイルサイトそれぞれにビジターを誘導しています。 「サイト名.com/」の直下でサイト内検索を行いたいのですが、モバイルサイトで検索するとPCサイトから検索した時のように「サイト名.com/?s=検索ワード」のようにならず、「サイト名.com/sp/?s=検索ワード」のように処理されてしまい、404エラーになってしまいます。 一つ上のディレクトリを指定、もしくはサイトのトップページを指定して検索させるにはどのようにしたらよろしいのでしょうか? ### 発生している問題・エラーメッセージ PCサイトでは、問題なくサイト内検索できる。 モバイルサイトでは、「/sp」をフロントページにしているため、その中でサイト内検索されてしまう。404エラーで、ページが見つかりませんの表示が出る。 ### 該当のソースコード PHP(searchform.php) "> " name="s" id="s"> .htaccess ~略~ 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] ### 試したこと http://45395.org/cms/wordpress/wordpress-internal-search-not-working/ searchform.php内のactionに上記の記事の内容を代入したが、上手くいかず。 ### 利用している環境 WordPress 4.9.8 ### 2018年8月13日追記 私の質問の書き方が誤解を非常に招きやすい書き方であり、混乱させてしまい申し訳ありません。 私自身、文章を見返して非常に意味不明な箇所がありましたので、修正させていただきました。 追記ですが、スマホ・携帯からアクセスしてきた場合は専用ページに飛ばしたいのでリダイレクトをしています。 個人的に怪しい部分はPHP(searchform.php)の "> の「action=""」だと睨んでいるのですが、不具合無しで動いてくれればいいので PHP、.htaccessどちらかで編集して動いてくれればよいと考えています。
回答: Webサイトの構成がよくわからないのですが、モバイルサイト用のリダイレクト > > {HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC] > > RewriteRule ^$ /sp/ [R,L] > > > を無効にして、http://example.com/sp/ から検索した場合、検索は正しく動作するのでしょうか? モバイルサイト用のリダイレクトを停止したら、正しく動作するのであれば、リダイレクトの条件に ``` RewriteCond %{QUERY_STRING} !(^|&)s=(.*) ``` あたりを追加すれば、動作しないでしょうか?