質問編集履歴

3

実行環境追記

2022/01/20 07:35

投稿

BGH
BGH

スコア13

test CHANGED
File without changes
test CHANGED
@@ -9,6 +9,20 @@
9
9
  これが難しければ、現在のルール + and条件としてURLの最後が/の場合は変換を行わないというものにしたいです。
10
10
  どの様にすればいいか教えていただけると幸いです。
11
11
 
12
+ 実行環境はwindows11、アクセスはlocalhostでのみテストしています。
13
+ ```log
14
+ [Thu Jan 20 16:31:13.005260 2022] [authz_core:debug] [pid 22352:tid 1084] mod_authz_core.c(815): [client ::1:54067] AH01626: authorization result of Require all granted: granted, referer: http://localhost/
15
+ [Thu Jan 20 16:31:13.005260 2022] [authz_core:debug] [pid 22352:tid 1084] mod_authz_core.c(815): [client ::1:54067] AH01626: authorization result of <RequireAny>: granted, referer: http://localhost/
16
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace2] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] init rewrite engine with requested uri /file, referer: http://localhost/
17
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace3] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] applying pattern '^([^\\.]+)$' to uri '/file', referer: http://localhost/
18
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace4] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] RewriteCond: input='/file' pattern='!-f' => matched, referer: http://localhost/
19
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace4] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] RewriteCond: input='/file' pattern='!-d' => matched, referer: http://localhost/
20
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace2] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] rewrite '/file' -> '/file.py', referer: http://localhost/
21
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace2] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] local path result: /file.py, referer: http://localhost/
22
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace2] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] prefixed with document_root to C:/Apache24/htdocs/file.py, referer: http://localhost/
23
+ [Thu Jan 20 16:34:43.075744 2022] [rewrite:trace1] [pid 22352:tid 1076] mod_rewrite.c(480): [client ::1:53921] ::1 - - [localhost/sid#1d9f9d09c98][rid#1d9fb0cf1b0/initial] go-ahead with C:/Apache24/htdocs/file.py [OK], referer: http://localhost/
24
+ ```
25
+
12
26
  ```httpd.conf
13
27
  <IfModule mod_rewrite.c>
14
28
  RewriteEngine On

2

誤字修正

2022/01/20 06:45

投稿

BGH
BGH

スコア13

test CHANGED
File without changes
test CHANGED
@@ -3,7 +3,7 @@
3
3
  例えば ./a/b/yyy のURLにをクリックすると ./a/b/yyy.py にアクセスしてほしいです。
4
4
 
5
5
  色々調べて以下のようなルールにしたのですが、この場合だと ./aaa/bbb/ccc/ にアクセスした場合、本来なら ./aaa/bbb/ccc/index.html にアクセスしてほしいが./aaa/bbb/ccc/.pyになり、404が表示されてしまいます。
6
- また、./aaa/file (存在するファイル) にアクセスしようとすると ./aaa/file.py になり、こちらも404ってしまいます。
6
+ また、./aaa/file (存在するファイル) にアクセスしようとすると ./aaa/file.py になり、こちらも404になってしまいます。
7
7
 
8
8
  実装したいルールとして、可能であれば .pyを付けた場合のファイルが見つかれば .pyにリネーム、存在しなければ通常通りの動作を行う、といったものにしたいです。
9
9
  これが難しければ、現在のルール + and条件としてURLの最後が/の場合は変換を行わないというものにしたいです。

1

加筆修正

2022/01/20 06:44

投稿

BGH
BGH

スコア13

test CHANGED
File without changes
test CHANGED
@@ -1,12 +1,15 @@
1
1
  Apache24のmod_rewrite.cを用いてURLをリネームしたいのですが、なかなか想定したように動いてくれません。
2
2
  **やりたいことは、CGIに対するアクセス(*.py)の拡張子を隠したいです。**
3
3
  例えば ./a/b/yyy のURLにをクリックすると ./a/b/yyy.py にアクセスしてほしいです。
4
+
4
5
  色々調べて以下のようなルールにしたのですが、この場合だと ./aaa/bbb/ccc/ にアクセスした場合、本来なら ./aaa/bbb/ccc/index.html にアクセスしてほしいが./aaa/bbb/ccc/.pyになり、404が表示されてしまいます。
6
+ また、./aaa/file (存在するファイル) にアクセスしようとすると ./aaa/file.py になり、こちらも404担ってしまいます。
7
+
5
8
  実装したいルールとして、可能であれば .pyを付けた場合のファイルが見つかれば .pyにリネーム、存在しなければ通常通りの動作を行う、といったものにしたいです。
6
9
  これが難しければ、現在のルール + and条件としてURLの最後が/の場合は変換を行わないというものにしたいです。
7
10
  どの様にすればいいか教えていただけると幸いです。
8
11
 
9
- ```conf
12
+ ```httpd.conf
10
13
  <IfModule mod_rewrite.c>
11
14
  RewriteEngine On
12
15
  LogLevel debug rewrite:trace8