質問編集履歴

4

質問内容をアップデート

2019/03/06 05:01

投稿

chef
chef

スコア15

test CHANGED
File without changes
test CHANGED
@@ -146,9 +146,7 @@
146
146
 
147
147
  http://example.com/wordpress/wordpress
148
148
 
149
- ※サブディレクトの名称が「wordpress
150
-
151
- 」で、WordPressのスラッグを持つ記事にアクセス
149
+ ※サブディレクトの名称が「wordpress」で、WordPressのスラッグを持つ記事にアクセス
152
150
 
153
151
 
154
152
 
@@ -210,7 +208,11 @@
210
208
 
211
209
 
212
210
 
213
- 「パーマリンク構造やディレクト構造に影響されない、記事だけを対象にしたリダイレクト処理の汎用的な記述の仕方は何でしょうか?」
211
+ ~~パーマリンク構造やディレクト構造に影響されない、~~記事だけを対象にしたリダイレクト処理の汎用的な記述の仕方は何でしょうか?」
212
+
213
+
214
+
215
+ 【追記】パーマリンク構造やディレクト構造に影響されない…というと語弊があると思うので追記します。今回の質問内容がWordPressに関することなので、WordPressの構造で汎用的に使えるhtaccessの記述方法が知りたいです。
214
216
 
215
217
 
216
218
 

3

質問内容をアップデート

2019/03/06 05:01

投稿

chef
chef

スコア15

test CHANGED
File without changes
test CHANGED
@@ -38,7 +38,9 @@
38
38
 
39
39
  RewriteCond %{REQUEST_URI} ./hello-world/?$ [OR]
40
40
 
41
- RewriteCond %{REQUEST_URI} ./wordpress/?$
41
+ RewriteCond %{REQUEST_URI} ./wordpress/?$ [OR]
42
+
43
+ RewriteCond %{REQUEST_URI} ./category/?$
42
44
 
43
45
  RewriteCond %{REQUEST_URI} !/category/.
44
46
 
@@ -70,7 +72,7 @@
70
72
 
71
73
 
72
74
 
73
- といった記述も試してみましたが、htaccessの処理内容を私が勘違いしているのか想定した動作になりませんでした。
75
+ といった記述も試してみましたが、htaccessの処理内容を私が勘違いしているのか想定した動作(categoryディレクト以下だけ対象処理を実行)になりませんでした。
74
76
 
75
77
 
76
78
 
@@ -93,3 +95,127 @@
93
95
  - もっと完結なやり方があれば教えていただきたいです。
94
96
 
95
97
  - 今回のような条件でもすべてクリアするような記述、もしくはそのヒントを教えていただきたいです。
98
+
99
+
100
+
101
+ ## 追記① 実行結果
102
+
103
+
104
+
105
+ 質問内容に不備があったため追記します。
106
+
107
+
108
+
109
+ 今回のコードでは以下の実行結果を得られます。
110
+
111
+
112
+
113
+ 上がアクセスするページ、下がアクセスした後の結果です。
114
+
115
+
116
+
117
+ ```
118
+
119
+ 【ケース①成功:記事ページにアクセス】
120
+
121
+ http://origin.com/wordpress
122
+
123
+ http://example.com/wordpress
124
+
125
+
126
+
127
+ 【ケース②成功:カテゴリーアーカイブページにアクセス】
128
+
129
+ http://origin.com/category/wordpress
130
+
131
+ http://origin.com/category/wordpress
132
+
133
+
134
+
135
+ 【ケース③成功:記事ページにアクセス】
136
+
137
+ http://origin.com/category
138
+
139
+ http://example.com/category
140
+
141
+
142
+
143
+ 【ケース④成功:記事ページにアクセス】
144
+
145
+ http://origin.com/wordpress/wordpress
146
+
147
+ http://example.com/wordpress/wordpress
148
+
149
+ ※サブディレクトの名称が「wordpress
150
+
151
+ 」で、WordPressのスラッグを持つ記事にアクセス
152
+
153
+
154
+
155
+ 【ケース⑤失敗:記事ページにアクセス】
156
+
157
+ http://origin.com/category/wordpress
158
+
159
+ http://origin.com/category/wordpress
160
+
161
+ ※サブディレクトリの名称が「category」で、WordPressのスラッグを持つ記事にアクセス
162
+
163
+ ```
164
+
165
+
166
+
167
+ ## 追記② 自己解決の可能性
168
+
169
+
170
+
171
+ [こちらのページ](http://www-creators.com/archives/1827)を参考に以下のコードにしてみたところ確かめられる範囲で成功しています。
172
+
173
+
174
+
175
+ 編集箇所は最後のRewriteCondです。否定の先読みというものを試してみました。
176
+
177
+
178
+
179
+ ```ここに言語を入力
180
+
181
+ <IfModule mod_rewrite.c>
182
+
183
+ RewriteEngine On
184
+
185
+ RewriteCond %{REQUEST_URI} ./hello-world/?$ [OR]
186
+
187
+ RewriteCond %{REQUEST_URI} ./wordpress/?$ [OR]
188
+
189
+ RewriteCond %{REQUEST_URI} ./category/?$
190
+
191
+ RewriteCond %{REQUEST_URI} (?!/category/.)
192
+
193
+ RewriteRule .* http://example.com%{REQUEST_URI} [R=302,L]
194
+
195
+ </IfModule>
196
+
197
+ ```
198
+
199
+
200
+
201
+ これでサブディレクトの名称が「category」でも処理されたので、先述のケース⑤も成功ということになります。
202
+
203
+
204
+
205
+ ## 追記③ お聞きしたいこと
206
+
207
+
208
+
209
+ 質問の仕方が悪かったようなので、簡潔に。
210
+
211
+
212
+
213
+ 「パーマリンク構造やディレクト構造に影響されない、記事だけを対象にしたリダイレクト処理の汎用的な記述の仕方は何でしょうか?」
214
+
215
+
216
+
217
+ これが今回私がお聞きしたいことです。
218
+
219
+
220
+
221
+ 質問というか、確認というか、みなさまのご意見などいただければ嬉しいです。

2

質問内容アップデート

2019/03/06 04:48

投稿

chef
chef

スコア15

test CHANGED
File without changes
test CHANGED
@@ -13,6 +13,8 @@
13
13
  - wp_redirect関数などを使わずに、htaccessファイルで処理をしたいです。
14
14
 
15
15
  - オリジナルテーマに組み込むプログラムのため、パーマリンク構造など制御できない部分があります。
16
+
17
+ - localhost/wordpressディレクトリ、localhost/categoryディレクトリでそれぞれテストしています。
16
18
 
17
19
 
18
20
 
@@ -60,16 +62,34 @@
60
62
 
61
63
 
62
64
 
65
+ ```ここに言語を入力
66
+
67
+ RewriteBase /category/
68
+
69
+ ```
70
+
71
+
72
+
73
+ といった記述も試してみましたが、htaccessの処理内容を私が勘違いしているのか想定した動作になりませんでした。
74
+
75
+
76
+
63
77
  ## 問題点
64
78
 
65
79
 
66
80
 
67
81
  - そもそものコードがスマートじゃない気がします。(環境変数使い回さずに条件定義した方がいいとか)
68
82
 
69
- - サブディレクトリの名前が「category」の場合に処理できません。
83
+ - サブディレクトリの名前が「category」の場合に処理できません。(同じ理由で「tag」ディレクトの時も処理できません)
70
84
 
71
85
  - その他のアーカイブページ(例えばタグなど)も否定の条件(!/tag/.)を追加しないといけないので、スマートじゃない気がします。
72
86
 
73
87
 
74
88
 
75
- どうかお知恵をお借りできれば思っています。
89
+ ## お知恵をお借りしたいこ
90
+
91
+
92
+
93
+ - もっと完結なやり方があれば教えていただきたいです。
94
+
95
+ - 今回のような条件でもすべてクリアするような記述、もしくはそのヒントを教えていただきたいです。

1

タグ追加

2019/03/06 02:31

投稿

chef
chef

スコア15

test CHANGED
File without changes
test CHANGED
File without changes