teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

回答修正

2020/02/06 05:56

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -9,8 +9,10 @@
9
9
  RewriteRule ^bar/ /foo/bar/sp/ [R,L]
10
10
  ```
11
11
 
12
- 但し、上記だと/foo/bar/は以下へのリクエストはすべて/foo/bar/sp/へリダイレクトするためリダイレクトループします。
12
+ 但し、上記だと/foo/bar/下へのリクエストはすべて/foo/bar/sp/へリダイレクトするためリダイレクトループします。(/foo/bar/sp/へのリクエストに対してもマッチするので)
13
13
  「/foo/bar/sp/以外」の条件を追加し、/foo/bar/以降のpathをリダイレクト先に追加します。
14
+ (※/foo/bar/sp/にはindex.htmlファイルのみ存在する場合は
15
+  `RewriteRule ^bar/ /foo/bar/sp/ [R,L]`で構いません。)
14
16
 
15
17
  ```htaccess
16
18
  #/foo/.htaccess
@@ -19,4 +21,6 @@
19
21
  RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
20
22
  RewriteCond %{QUERY_STRING} !mode=pc
21
23
  RewriteRule ^bar/(.*) /foo/bar/sp/$1 [R,L]
24
+ #/foo/bar/sp/配下にはindex.htmlファイルのみ存在する場合は以下でも可です。
25
+ #RewriteRule ^bar/ /foo/bar/sp/ [R,L]
22
26
  ```

1

回答修正

2020/02/06 05:56

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -7,4 +7,16 @@
7
7
  RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
8
8
  RewriteCond %{QUERY_STRING} !mode=pc
9
9
  RewriteRule ^bar/ /foo/bar/sp/ [R,L]
10
+ ```
11
+
12
+ 但し、上記だと/foo/bar/は以下へのリクエストはすべて/foo/bar/sp/へリダイレクトするためリダイレクトループします。
13
+ 「/foo/bar/sp/以外」の条件を追加し、/foo/bar/以降のpathをリダイレクト先に追加します。
14
+
15
+ ```htaccess
16
+ #/foo/.htaccess
17
+ RewriteEngine On
18
+ RewriteCond %{REQUEST_URI} !/foo/bar/sp/ [NC]
19
+ RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
20
+ RewriteCond %{QUERY_STRING} !mode=pc
21
+ RewriteRule ^bar/(.*) /foo/bar/sp/$1 [R,L]
10
22
  ```