[OS 10.4.2, Apache 1.33]Apache en .htaccess?

Pagina: 1
Acties:

  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
Jaja, het is weer eens zover.. De zoveelste die overhoop zit met .htaccess bestanden in combinatie met de ingebouwde OS X apache versie... Ik heb die service gestart, php en mysql geinstalleerd enzo zonder problemen alleen nu de .htaccess bestanden aanslingeren, dat wil maar niet..

wat ik heb gedaan:
*flinke google sessies
*GoT search
*Deze Tutorial

Wat ik tot nu toe heb ik mijn configs:

/private/etc/httpd/httpd.conf:
code:
1
2
3
4
5
# This controls which options the .htaccess files in directories can
# override. Can also be "All", or any combination of "Options", "FileInfo", 
# "AuthConfig", and "Limit"
#
    AllowOverride All

/private/etc/httpd/users/steven.conf:
code:
1
2
3
4
5
6
<Directory "/Users/steven/Sites/">
    Options Indexes MultiViews
    AllowOverride All
    Order allow,deny
    Allow from all
</Directory>

~/Sites/Amerika/.htaccess
code:
1
2
3
4
5
6
7
ErrorDocument 404 index.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog /local/rewrite.log
RewriteLogLevel 9 
RewriteRule ^pag/(.*) index.php?pag=$1
</ifModule>

In mijn error_log van Apache:
code:
1
[Mon Sep 19 20:58:12 2005] [alert] [client 10.0.0.154] /Users/steven/Sites/Amerika/.htaccess: ErrorDocument not allowed here
en ook:
code:
1
[Mon Sep 19 21:34:29 2005] [alert] [client 10.0.0.154] /Users/steven/Sites/Amerika/.htaccess: RewriteLog not allowed here

Of terwijl, alles dat ik ook in de .htaccess bestand prop, niks mag van hem!

Kan iemand mij helpen?

Steven

//edit 1.1
Ik krijg steeds error "500 Internal Server Error"

[ Voor 7% gewijzigd door stevenP op 19-09-2005 22:05 ]

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

Misschien een domme vraag, maar heb je Apache wel gerestart nadat je die wijzigingen hebt gemaakt?

De .htaccess files worden bij iedere request geraadpleegd, maar de configuratie wordt alleen bij een restart of een SIGHUP opnieuw ingelezen (vanwege performance redenen).

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
dawuss schreef op maandag 19 september 2005 @ 23:25:
Misschien een domme vraag, maar heb je Apache wel gerestart nadat je die wijzigingen hebt gemaakt?

De .htaccess files worden bij iedere request geraadpleegd, maar de configuratie wordt alleen bij een restart of een SIGHUP opnieuw ingelezen (vanwege performance redenen).
hehe, ja sorry te vermelden! Uiteraard heb ik zowel os x als apache 100 keer gereset, dit zonder resultaten.

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • benoni
  • Registratie: November 2003
  • Niet online
Die rewrite log kan ie niet bewaren omdat er geen /local is op MacOSX

Probeer eens een andere map, bijvoorbeeld ~/Documents/rewrite.log

Edit:
~ wordt waarschijnlijk niet herkend in dit geval, dus wordt 't /Users/steven/Documents/rewrite.log,
of /var/log/rewrite.log als je wilt. Kijk ook even de schrijfrechten na als het nog steeds niet werkt.

[ Voor 49% gewijzigd door benoni op 20-09-2005 08:45 ]


  • dawuss
  • Registratie: Maart 2001
  • Laatst online: 01-02 20:46

dawuss

gadgeteer

benoni schreef op dinsdag 20 september 2005 @ 08:36:
Die rewrite log kan ie niet bewaren omdat er geen /local is op MacOSX

Probeer eens een andere map, bijvoorbeeld ~/Documents/rewrite.log
Eehm, dan wil je geen relatieve links gebruiken he, want daarbij doe je aannames over de user waaronder httpd draait :)

/Users/{naam}/Sites/rewrite.log is dus een beter alternatief :)

micheljansen.org
Fulltime Verslaafde Commandline Fetisjist ©


  • benoni
  • Registratie: November 2003
  • Niet online
dawuss schreef op dinsdag 20 september 2005 @ 08:44:
Eehm, dan wil je geen relatieve links gebruiken he :)
Inderdaad, ik was de post al aan het aanpassen maar 's morgens ben 'k niet zo snel...
* ben gaat nu naar z'n werk en koffie halen

Oh wacht...
/Users/{naam}/Sites/rewrite.log kan een privacy probleem geven als die map gepubliceerd is voor de website.

[ Voor 20% gewijzigd door benoni op 20-09-2005 08:56 ]


  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
Ok, op raad van andere heb ik een aantal dingen geprobeerd, nog steeds geen resultaat..
code:
1
2
3
4
5
6
7
ErrorDocument 404 /404.html
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteLog /Users/steven/rewrite.log
RewriteLogLevel 9
RewriteRule ^pag/(.*) index.php?pag=$1
</ifModule>

Wat is veranderd?
*de 404 is naar een bestaande 404pagina verwezen, niet de index.
*de RewriteLog is naar een bestaande file gegaan met lees/schrijfrechten voor de www user

Dit alles dus zonder resultaten, zelfs de RewriteLog mag niks uitvreten..

Iemand?

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • benoni
  • Registratie: November 2003
  • Niet online
Mmm.. ik los niet dagelijks mod_rewrite puzzeltjes op, maar omdat nog niemand anders reageert geef ik toch maar een voorzetje:

- In de regular expression geef je wel het begin aan met ^, maar niet het eind met $. Als ik er wat voorbeelden op nasla, zie ik dat die expressies netjes van ^ naar $ lopen. Misschien is mod_rewrite hierover inderdaad wat kieskeuriger dan andere toeppassingen.

- Heb je opnieuw de logfile nagekeken: 'tail /var/log/httpd/error_log'... kun je de foutmeldingen posten?

  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
benoni, inderdaad hoor ik dat met een $ af te sluiten (mijn fout) alleen gaat het echter meer om het .htaccess aan de praat krijgen dan het daadwerkelijke mod_rewrite scripten. Ik heb het uiteraard wel even geprobeerd ;)

de foutmeldingen:
code:
1
[Wed Sep 21 16:25:45 2005] [alert] [client 10.0.0.154] /Users/steven/Sites/Amerika/.htaccess: ErrorDocument not allowed here
Hij begint dus gewoon te flippen over het eerste wat er in het document voorkomt, draai ik namelijk de volgorde om (eerst mod_rewrite en dan 404 krijg ik dit:
code:
1
[Mon Sep 19 22:18:48 2005] [alert] [client 10.0.0.154] /Users/steven/Sites/Amerika/.htaccess: RewriteLog not allowed here

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • benoni
  • Registratie: November 2003
  • Niet online
Misschien ligt het hieraan: in de config file open je met <IfModule> en sluit je met </ifModule>, 1 letter fout dus.

Voor wat betreft de schrijfrechten lijkt 't wel goed te zitten. Het is wel zo dat Apache het recht moet hebben om in de aangegeven map een nieuw logbestand te kunnen aanmaken (dus niet alleen schrijfrechten op de inhoud van het bestand, maar ook op de directory). Maar dat is niet zo'n probleem omdat de afgesplitste httpd processthreads bij een standaard MacOSX installatie sowieso geen schrijfrechten hebben, en daarentegen het parent process onder root draait om logfiles te kunnen bewaren. Dus een log bewaren in de /User/steven zou ook moeten kunnen.

  • MikeN
  • Registratie: April 2001
  • Laatst online: 13-02 18:18
Ik denk dat je meerdere AllowOverrides in je httpd.conf hebt staan, geef eens een linkje naar je hele conf? :)

  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
Ik heb ze maar even online gezet, en wel hier.
Dit zijn mijn error_log, httpd.conf, steven.conf (user dir) en htaccess. Ik heb ze even naar .txt vernoemd, dat is wat makkelijker voor iedereen te openen.

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • benoni
  • Registratie: November 2003
  • Niet online
Even een terzijde: ik zie dat MacOSX standaard in /private/etc/httpd/httpd.conf een mod_rewrite config zet die de HTTP TRACE aanvragen afketst met een 'RewriteRule .* - [F]'. Da's netjes.

Bovenin je htaccess staat nu: 'ErrorDocument 404 /404.html'
Ik neem aan dat je in je / geen '404.html' hebt staan, en gelukkig is volgens de Apache setup de root directory niet gepubliceerd, dus daarom krijg je ook de foutmelding 'ErrorDocument not allowed here'.

Waarschijnlijk blijft het probleem van de RewriteLog nog opspelen.
Disable het anders tijdelijk met een # ervoor, zodat je kunt testen of de rewrite regel werkt. De foutmeldingen zullen (denk ik) via de hoofdmodule in /private/var/log/httpd/error_log terechtkomen.

Kijk ook even naar het volgende (vetgedrukt):

Van http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html:
The RewriteLog directive sets the name of the file to which the server logs any rewriting actions it performs. If the name does not begin with a slash ('/') then it is assumed to be relative to the Server Root. The directive should occur only once per server config.

Note: To disable the logging of rewriting actions it is not recommended to set file-path to /dev/null, because although the rewriting engine does not then output to a logfile it still creates the logfile output internally. This will slow down the server with no advantage to the administrator! To disable logging either remove or comment out the RewriteLog directive or use RewriteLogLevel 0!
(Zie ook: http://httpd.apache.org/docs/1.3/misc/rewriteguide.html)

Het lijkt me slim om in ieder geval de rewrite log directive uit htaccess weg te halen en in de httpd.conf op te nemen, zodat de configuratie maar 1 x plaatsvindt. Let op met een relatieve padnaam, die is 'assumed to be relative to the Server Root.', dat kan dus zijn '/Library/WebServer/Documents' uit /private/etc/httpd/httpd.conf.

[ Voor 104% gewijzigd door benoni op 22-09-2005 17:20 ]


  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
benoni, ten eerste onwijs bedankt voor de reacties/hulp!

Ik heb net even alles met een #'je ervoor gezet behalve mijn RewriteRule en hij wil/mag nog steeds niet. ik krijg deze error (ook als ik gewoon naar de directory ga /~steven/amerika waar dus de .htaccess instaat):
code:
1
[Thu Sep 22 18:27:08 2005] [alert] [client 10.0.0.154] /Users/steven/Sites/Amerika/.htaccess: RewriteEngine not allowed here
in mijn error_log van Apache. In de browser een 500 nog steeds. Ik ga zo proberen de RewriteLog in mijn httpd.conf te zetten, dan hoor je nog van me!

edit
Ok, ik heb even zitten spelen en heb mijn RewriteLog aan de praat gekregen 8) Hier zijn mijn veranderingen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
*In mijn httpd.conf staat nu dit:
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} ^TRACE
    RewriteRule .* - [F]
    RewriteLog /etc/httpd/rewrite.log
    RewriteLogLevel 9 
</IfModule>

*In mijn .htaccess staat nu dit:
#ErrorDocument 404 404.html
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteLog /etc/httpd/rewrite.log
#RewriteLogLevel 9 
RewriteBase ~steven/Amerika
RewriteRule ^/pag/(.*) index.php?pag=$1
</ifModule>
Ik weet het, mijn RewriteRules kloppen nog niet 100%, maar ik heb wel die RewriteLog aan de praat en dit is wat hij roept nu:
code:
1
2
3
4
10.0.0.154 - - [22/Sep/2005:18:49:13 +0200] [macmini.polaknet/sid#1802648][rid#183ca38/initial] (2) init rewrite engine with requested uri /~steven/Amerika/pag/Dagboek
10.0.0.154 - - [22/Sep/2005:18:49:13 +0200] [macmini.polaknet/sid#1802648][rid#183ca38/initial] (3) applying pattern '.*' to uri '/~steven/Amerika/pag/Dagboek'
10.0.0.154 - - [22/Sep/2005:18:49:13 +0200] [macmini.polaknet/sid#1802648][rid#183ca38/initial] (4) RewriteCond: input='GET' pattern='^TRACE' => not-matched
10.0.0.154 - - [22/Sep/2005:18:49:13 +0200] [macmini.polaknet/sid#1802648][rid#183ca38/initial] (1) pass through /~steven/Amerika/pag/Dagboek
In de error_log van Apache heeft hij het nog steeds over "RewriteEngine not allowed here"

[ Voor 59% gewijzigd door stevenP op 22-09-2005 23:13 ]

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
Hmm, ik heb zelf weinig tijd gehad maar nog wel even naar gegekeken, dit zonder resultaat. Iemand anders een idee?

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
Toch maar weer eens schoppen, ik krijg het maar niet voor elkaar.. :r

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB


  • CyBeR
  • Registratie: September 2001
  • Niet online

CyBeR

💩

Move die .htaccess eens een directorylevel omhoog? Dus naar /users/steven/sites/.

All my posts are provided as-is. They come with NO WARRANTY at all.


  • stevenP
  • Registratie: December 2003
  • Laatst online: 13-02 20:32
Ok, ik heb het geprobeerd met het volgende als resultaat:
Mijn .htaccess uit ~/users/steven/Sites/
code:
1
2
3
4
5
6
7
8
#ErrorDocument 404 404.html
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteLog /etc/httpd/rewrite.log
#RewriteLogLevel 9 
RewriteBase /~steven
RewriteRule ^pag/(.*)$ index.php?pag=$1
</ifModule>
Ja, ik heb er alle site files ingezet, dus als hij goed rewrite zou hij het moeten doen..
In mijn RewriteLog:
code:
1
2
3
4
127.0.0.1 - - [01/Oct/2005:12:51:49 +0200] [macmini.polaknet/sid#1802648][rid#183ea38/initial] (2) init rewrite engine with requested uri /~steven/pag/dagboek
127.0.0.1 - - [01/Oct/2005:12:51:49 +0200] [macmini.polaknet/sid#1802648][rid#183ea38/initial] (3) applying pattern '.*' to uri '/~steven/pag/dagboek'
127.0.0.1 - - [01/Oct/2005:12:51:49 +0200] [macmini.polaknet/sid#1802648][rid#183ea38/initial] (4) RewriteCond: input='GET' pattern='^TRACE' => not-matched
127.0.0.1 - - [01/Oct/2005:12:51:49 +0200] [macmini.polaknet/sid#1802648][rid#183ea38/initial] (1) pass through /~steven/pag/dagboek
Zo ook mijn ErrorLog uit /private/var/log/httpd/error_log
code:
1
[Sat Oct  1 12:52:18 2005] [alert] [client 127.0.0.1] /Users/steven/Sites/.htaccess: RewriteEngine not allowed here

Hij gaf deze foutmeldingen op alles wat ik deed, ook als ik localhost/~steven/Amerika doe, of /~steven/php info.php (dat bestand staat daar ook)

btw, hier staat de werkende versie van de site "amerika" online, de code is dus prima.

Gasloos! 3100Wp Z, 2150Wp W, Panasonic 5J monoblock, Panasonic 150L WPB

Pagina: 1