回答編集履歴

2

回答修正

2020/02/06 05:56

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -20,9 +20,13 @@
20
20
 
21
21
 
22
22
 
23
- 但し、上記だと/foo/bar/は以下へのリクエストはすべて/foo/bar/sp/へリダイレクトするためリダイレクトループします。
23
+ 但し、上記だと/foo/bar/下へのリクエストはすべて/foo/bar/sp/へリダイレクトするためリダイレクトループします。(/foo/bar/sp/へのリクエストに対してもマッチするので)
24
24
 
25
25
  「/foo/bar/sp/以外」の条件を追加し、/foo/bar/以降のpathをリダイレクト先に追加します。
26
+
27
+ (※/foo/bar/sp/にはindex.htmlファイルのみ存在する場合は
28
+
29
+  `RewriteRule ^bar/ /foo/bar/sp/ [R,L]`で構いません。)
26
30
 
27
31
 
28
32
 
@@ -40,4 +44,8 @@
40
44
 
41
45
  RewriteRule ^bar/(.*) /foo/bar/sp/$1 [R,L]
42
46
 
47
+ #/foo/bar/sp/配下にはindex.htmlファイルのみ存在する場合は以下でも可です。
48
+
49
+ #RewriteRule ^bar/ /foo/bar/sp/ [R,L]
50
+
43
51
  ```

1

回答修正

2020/02/06 05:56

投稿

Y.H.
Y.H.

スコア7914

test CHANGED
@@ -17,3 +17,27 @@
17
17
  RewriteRule ^bar/ /foo/bar/sp/ [R,L]
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ 但し、上記だと/foo/bar/は以下へのリクエストはすべて/foo/bar/sp/へリダイレクトするためリダイレクトループします。
24
+
25
+ 「/foo/bar/sp/以外」の条件を追加し、/foo/bar/以降のpathをリダイレクト先に追加します。
26
+
27
+
28
+
29
+ ```htaccess
30
+
31
+ #/foo/.htaccess
32
+
33
+ RewriteEngine On
34
+
35
+ RewriteCond %{REQUEST_URI} !/foo/bar/sp/ [NC]
36
+
37
+ RewriteCond %{HTTP_USER_AGENT} (iPhone|Android.*Mobile|Windows.*Phone) [NC]
38
+
39
+ RewriteCond %{QUERY_STRING} !mode=pc
40
+
41
+ RewriteRule ^bar/(.*) /foo/bar/sp/$1 [R,L]
42
+
43
+ ```