Ik probeer voor een db-driven website een url rewriting functie te implementeren zodat http://www.host.com/bla/1 intern naar http://www.host.com/test.php?page=bla&ID=1 wordt herschreven. Ik kom er echter na uren manuals, howtos, tutorials en got lezen er maar niet uit.
Het systeem waar m'n Apache op draait is volgens phpinfo() Windows NT 5.0 build 2195, W2k dus. Ik heb net naar Apache 2.0.40 upgegrade, zonder succes, na het zelfde probleem te hebben met Apache 1.3.22. Hetzelfde geldt voor PHP versies 4.1.1 en 4.2.2.
Ik heb verschillende varianten van m'n .htaccess geprobeerd:
(uiteraard de laatste 3 RewriteRules afzonderlijk geprobeerd, niet tegelijk)
Dit leverde spijtig genoeg de volgende resultaten:
http://localhost/test.php/bla/1
Resultaat: Internal Server Error
Apache's error.log zegt:
[Tue Aug 27 21:52:32 2002] [error] [client 127.0.0.1] Premature end of script headers: php.exe
http://localhost/bla/1
[Tue Aug 27 21:51:55 2002] [error] [client 127.0.0.1] File does not exist: C:/Program Files/Apache Group/Apache2/htdocs/bla
Nu kwam ik in een tutorial tegen hoe je makkelijk je mod_rewrite kunt testen, dit deed ik als volgt:
Vervelend genoeg was index.php gewoon opvraagbaar. Conclusie: hij rewrite niet (duh).
test.php bevat:
Nu las ik hier
http://www.phpbuilder.com/annotate/message.php3?id=1003507
http://www.phpbuilder.com/annotate/message.php3?id=1011872
dat er wat problemen waren met de combi Apache + mod_rewrite + windows. Klopt het dat het op mijn systeem niet werkt of zie ik gewoon iets over het hoofd?
Het gaat nu alleen om m'n dev omgeving, de website komt als ie af is op een Linux-server te draaien.
Alvast bedankt voor het lezen van deze lap tekst
Hier nog even m'n httpd.conf (ik heb maar even de remarked tekst eruit geknipt, omdat 't anders zo lang wordt):
Het systeem waar m'n Apache op draait is volgens phpinfo() Windows NT 5.0 build 2195, W2k dus. Ik heb net naar Apache 2.0.40 upgegrade, zonder succes, na het zelfde probleem te hebben met Apache 1.3.22. Hetzelfde geldt voor PHP versies 4.1.1 en 4.2.2.
Ik heb verschillende varianten van m'n .htaccess geprobeerd:
code:
1
2
3
4
5
6
| RewriteEngine on Options +FollowSymlinks RewriteBase / RewriteRule ^([a-zA-Z]+)/([0-9]+) /test.php?page=$1/ID=$2 RewriteRule ^([a-zA-Z]+)/([0-9]+) test.php\?page\=\$1\&ID\=\$2 RewriteRule ^([a-zA-Z]+)/([0-9]+) /test.php?page=$1&ID=$2 |
(uiteraard de laatste 3 RewriteRules afzonderlijk geprobeerd, niet tegelijk)
Dit leverde spijtig genoeg de volgende resultaten:
http://localhost/test.php/bla/1
Resultaat: Internal Server Error
Apache's error.log zegt:
[Tue Aug 27 21:52:32 2002] [error] [client 127.0.0.1] Premature end of script headers: php.exe
http://localhost/bla/1
[Tue Aug 27 21:51:55 2002] [error] [client 127.0.0.1] File does not exist: C:/Program Files/Apache Group/Apache2/htdocs/bla
Nu kwam ik in een tutorial tegen hoe je makkelijk je mod_rewrite kunt testen, dit deed ik als volgt:
code:
1
2
3
| RewriteEngine on Options +FollowSymlinks RewriteRule ^\index.php$ - [F] |
Vervelend genoeg was index.php gewoon opvraagbaar. Conclusie: hij rewrite niet (duh).
test.php bevat:
PHP:
1
2
| echo $page; echo $ID; |
Nu las ik hier
http://www.phpbuilder.com/annotate/message.php3?id=1003507
http://www.phpbuilder.com/annotate/message.php3?id=1011872
dat er wat problemen waren met de combi Apache + mod_rewrite + windows. Klopt het dat het op mijn systeem niet werkt of zie ik gewoon iets over het hoofd?
Het gaat nu alleen om m'n dev omgeving, de website komt als ie af is op een Linux-server te draaien.
Alvast bedankt voor het lezen van deze lap tekst
Hier nog even m'n httpd.conf (ik heb maar even de remarked tekst eruit geknipt, omdat 't anders zo lang wordt):
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
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
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
| ServerRoot "C:/Program Files/Apache Group/Apache2"
PidFile logs/httpd.pid
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
<IfModule mpm_winnt.c>
ThreadsPerChild 250
MaxRequestsPerChild 0
</IfModule>
Listen 80
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
#LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
ServerAdmin MijnEmailAdresStondHier
ServerName 192.168.0.4:80
UseCanonicalName Off
DocumentRoot "C:/Program Files/Apache Group/Apache2/htdocs"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "C:/Program Files/Apache Group/Apache2/htdocs">
Options All MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.html index.php index.html.var
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig conf/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
ErrorLog logs/error.log
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access.log common
ServerSignature On
Alias /icons/ "C:/Program Files/Apache Group/Apache2/icons/"
<Directory "C:/Program Files/Apache Group/Apache2/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Alias /manual "C:/Program Files/Apache Group/Apache2/manual"
<Directory "C:/Program Files/Apache Group/Apache2/manual">
Options Indexes FollowSymLinks MultiViews IncludesNoExec
AddOutputFilter Includes html
AllowOverride None
Order allow,deny
Allow from all
</Directory>
ScriptAlias /cgi-bin/ "C:/Program Files/Apache Group/Apache2/cgi-bin/"
<Directory "C:/Program Files/Apache Group/Apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
IndexOptions FancyIndexing VersionSort
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
DefaultIcon /icons/unknown.gif
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
AddLanguage da .dk
AddLanguage nl .nl
AddLanguage en .en
AddLanguage et .et
AddLanguage fr .fr
AddLanguage de .de
AddLanguage he .he
AddLanguage el .el
AddLanguage it .it
AddLanguage ja .ja
AddLanguage pl .po
AddLanguage ko .ko
AddLanguage pt .pt
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pt-br .pt-br
AddLanguage ltz .ltz
AddLanguage ca .ca
AddLanguage es .es
AddLanguage sv .se
AddLanguage cz .cz
AddLanguage ru .ru
AddLanguage tw .tw
AddLanguage zh-tw .tw
AddLanguage hr .hr
LanguagePriority en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw
ForceLanguagePriority Prefer Fallback
AddDefaultCharset ISO-8859-1
AddCharset ISO-8859-1 .iso8859-1 .latin1
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3 .iso8859-3 .latin3
AddCharset ISO-8859-4 .iso8859-4 .latin4
AddCharset ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6 .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7 .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8 .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9 .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5 .Big5 .big5
AddCharset WINDOWS-1251 .cp-1251 .win-1251
AddCharset CP866 .cp866
AddCharset KOI8-r .koi8-r .koi8-ru
AddCharset KOI8-ru .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8 .utf8
AddCharset GB2312 .gb2312 .gb
AddCharset utf-7 .utf7
AddCharset utf-8 .utf8
AddCharset big5 .big5 .b5
AddCharset EUC-TW .euc-tw
AddCharset EUC-JP .euc-jp
AddCharset EUC-KR .euc-kr
AddCharset shift_jis .sjis
AddType application/x-tar .tgz
AddHandler type-map var
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
<IfModule mod_ssl.c>
Include conf/ssl.conf
</IfModule>
ScriptAlias /php/ "c:/php/"
AddHandler application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe" |