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

回答編集履歴

5

detail に \.php の拡張子を追加

2016/09/11 06:09

投稿

mit0223
mit0223

スコア3401

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  あと、[] の中で "_-." という並びにすると文字コード上アンダースコア(_)からピリオド(.) までの範囲の文字すべてという意味になりますが、文字コード上ピリオド(.)=0x2Dよりアンダースコア(_)=0x5Fのほうが大きいので、エラーになってます。cannot compile regular expression のエラーになります。なので、ピリオドを先頭に移動しました。
4
4
 
5
5
  ```
6
- RewriteRule ^/server/([.0-9a-zA-Z_-]+)$ /server/detail?id=$1 [QSA,PT]
6
+ RewriteRule ^/server/([.0-9a-zA-Z_-]+)$ /server/detail.php?id=$1 [QSA,PT]
7
7
  ```
8
8
 
9
9
  上記は httpd.conf に設定する場合で、 .htaccess に書く場合はマッチング対象のパスの方は / をつけてはいけません。

4

エラーになる原因がわかったので修正

2016/09/11 06:08

投稿

mit0223
mit0223

スコア3401

answer CHANGED
@@ -1,6 +1,6 @@
1
1
  自分の環境で試しました。
2
2
  試されているもので、ほぼ正解だと思うのですが、頭の / が抜けています。
3
- あと、ピリオド(.)を正規表現の[ ] に含めるきは最後におてはだめなようです。cannot compile regular expression のエラーになります。なので、先頭に移動しました。
3
+ あと、[] の中で "_-." という並びにすると文字コード上アンダースコア(_)からピリオド(.) までの範囲の文字すべてという意味にりますが、文字コード上ピリオド(.)=0x2Dりアンダースコア(_)=0x5Fのほが大きいの、エラーになってます。cannot compile regular expression のエラーになります。なので、ピリオドを先頭に移動しました。
4
4
 
5
5
  ```
6
6
  RewriteRule ^/server/([.0-9a-zA-Z_-]+)$ /server/detail?id=$1 [QSA,PT]

3

ピリオドの場所が悪かったので修正しました。

2016/09/11 01:35

投稿

mit0223
mit0223

スコア3401

answer CHANGED
@@ -1,8 +1,9 @@
1
+ 自分の環境で試しました。
1
- 試されているもので、ほぼ正解だと思うのですが、頭の / が抜けているのではないでしょうか?
2
+ 試されているもので、ほぼ正解だと思うのですが、頭の / が抜けています。
3
+ あと、ピリオド(.)を正規表現の[ ] に含めるときは最後においてはだめなようです。cannot compile regular expression のエラーになります。なので、先頭に移動しました。
2
4
 
3
5
  ```
4
- RewriteRule ^/server/([0-9a-zA-Z_-.]+)$ /server/detail?id=$1 [QSA,PT]
6
+ RewriteRule ^/server/([.0-9a-zA-Z_-]+)$ /server/detail?id=$1 [QSA,PT]
5
7
  ```
6
8
 
7
9
  上記は httpd.conf に設定する場合で、 .htaccess に書く場合はマッチング対象のパスの方は / をつけてはいけません。
8
- また、 500 Internal Server Error が出ているのであれば、 httpd のエラーログに何か出てないでしょうか?

2

書き換えの方向が逆でしたので、訂正します。

2016/09/11 00:07

投稿

mit0223
mit0223

スコア3401

answer CHANGED
@@ -1,7 +1,8 @@
1
- ちょっとすぐにテストできないのであてずっぽうですが、
1
+ 試されてるもので、ほぼ正解だと思ですが、頭の / が抜けているのではないでしょうか?
2
2
 
3
3
  ```
4
- RewriteRule ^/server/detail\?id=(.*)$ /server/$1
4
+ RewriteRule ^/server/([0-9a-zA-Z_-.]+)$ /server/detail?id=$1 [QSA,PT]
5
5
  ```
6
6
 
7
+ 上記は httpd.conf に設定する場合で、 .htaccess に書く場合はマッチング対象のパスの方は / をつけてはいけません。
7
- じゃないかな
8
+ また、 500 Internal Server Error が出てるのであれば、 httpd のエラーログに何出ていでしょうか?

1

最初のスラッシュを追加

2016/09/10 05:50

投稿

mit0223
mit0223

スコア3401

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  ちょっとすぐにテストできないのであてずっぽうですが、
2
2
 
3
3
  ```
4
- RewriteRule ^server/detail\?id=(.*)$ server/$1
4
+ RewriteRule ^/server/detail\?id=(.*)$ /server/$1
5
5
  ```
6
6
 
7
7
  じゃないかな。