回答編集履歴
5
detail に \.php の拡張子を追加
test
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
```
|
10
10
|
|
11
|
-
RewriteRule ^/server/([.0-9a-zA-Z_-]+)$ /server/detail?id=$1 [QSA,PT]
|
11
|
+
RewriteRule ^/server/([.0-9a-zA-Z_-]+)$ /server/detail.php?id=$1 [QSA,PT]
|
12
12
|
|
13
13
|
```
|
14
14
|
|
4
エラーになる原因がわかったので修正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
試されているもので、ほぼ正解だと思うのですが、頭の / が抜けています。
|
4
4
|
|
5
|
-
あと、ピリオド(.)
|
5
|
+
あと、[] の中で "_-." という並びにすると文字コード上アンダースコア(_)からピリオド(.) までの範囲の文字すべてという意味になりますが、文字コード上ピリオド(.)=0x2Dよりアンダースコア(_)=0x5Fのほうが大きいので、エラーになってます。cannot compile regular expression のエラーになります。なので、ピリオドを先頭に移動しました。
|
6
6
|
|
7
7
|
|
8
8
|
|
3
ピリオドの場所が悪かったので修正しました。
test
CHANGED
@@ -1,10 +1,14 @@
|
|
1
|
+
自分の環境で試しました。
|
2
|
+
|
1
|
-
試されているもので、ほぼ正解だと思うのですが、頭の / が抜けてい
|
3
|
+
試されているもので、ほぼ正解だと思うのですが、頭の / が抜けています。
|
4
|
+
|
5
|
+
あと、ピリオド(.)を正規表現の[ ] に含めるときは最後においてはだめなようです。cannot compile regular expression のエラーになります。なので、先頭に移動しました。
|
2
6
|
|
3
7
|
|
4
8
|
|
5
9
|
```
|
6
10
|
|
7
|
-
RewriteRule ^/server/([0-9a-zA-Z_-
|
11
|
+
RewriteRule ^/server/([.0-9a-zA-Z_-]+)$ /server/detail?id=$1 [QSA,PT]
|
8
12
|
|
9
13
|
```
|
10
14
|
|
@@ -12,4 +16,4 @@
|
|
12
16
|
|
13
17
|
上記は httpd.conf に設定する場合で、 .htaccess に書く場合はマッチング対象のパスの方は / をつけてはいけません。
|
14
18
|
|
15
|
-
|
19
|
+
|
2
書き換えの方向が逆でしたので、訂正します。
test
CHANGED
@@ -1,13 +1,15 @@
|
|
1
|
-
|
1
|
+
試されているもので、ほぼ正解だと思うのですが、頭の / が抜けているのではないでしょうか?
|
2
2
|
|
3
3
|
|
4
4
|
|
5
5
|
```
|
6
6
|
|
7
|
-
RewriteRule ^/server/
|
7
|
+
RewriteRule ^/server/([0-9a-zA-Z_-.]+)$ /server/detail?id=$1 [QSA,PT]
|
8
8
|
|
9
9
|
```
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
+
上記は httpd.conf に設定する場合で、 .htaccess に書く場合はマッチング対象のパスの方は / をつけてはいけません。
|
14
|
+
|
13
|
-
|
15
|
+
また、 500 Internal Server Error が出ているのであれば、 httpd のエラーログに何か出てないでしょうか?
|
1
最初のスラッシュを追加
test
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
```
|
6
6
|
|
7
|
-
RewriteRule ^server/detail\?id=(.*)$ server/$1
|
7
|
+
RewriteRule ^/server/detail\?id=(.*)$ /server/$1
|
8
8
|
|
9
9
|
```
|
10
10
|
|