PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : apache mod_rewrite



Beatmaster
07.11.02, 17:25
Hallo,

ich habe bei meinem Apachen/mod_rewrite einen ganz komischen Effekt (mod_rewrite ist statisch einkompiliert) ...
Bei einem Virtualhost möchte ich eine PHP-Seite "suchmaschinenfreundlich" bekommen, zum Test habe ich einmal folgende zwei Zeilen in eine .htaccess einggetragen:

RewriteEngine On
RewriteRule ^/galerie$ /kunst.php


folgende VHost-Konfig:

<VirtualHost xxx.xxx.xxx.xxx:80>
DocumentRoot /mnt/daten/apache/www.meinserver.de/htdocs
ServerName www.meinserver.de
DirectoryIndex index.php index.html index.htm
<Directory "/mnt/daten/apache/www.meinserver.de/htdocs">
AllowOverride All
Options FollowSymLinks
</Directory>
</VirtualHost>


Das Ergebnis: Error 404 - File Not Found :(

Trage ich die zwei Regeln in die VHost-Konfig ein, funktioniert es einwandfrei!

<VirtualHost xxx.xxx.xxx.xxx:80>
DocumentRoot /mnt/daten/apache/www.meinserver.de/htdocs
ServerName www.meinserver.de
DirectoryIndex index.php index.html index.htm
RewriteEngine On
RewriteRule ^/galerie$ /kunst.php
<Directory "/mnt/daten/apache/www.meinserver.de/htdocs">
AllowOverride All
Options FollowSymLinks
</Directory>
</VirtualHost>


Was soll das? Sollte man rewrite besser als Modul kompilieren?

THX,
Michael

stefaan
07.11.02, 18:10
Servus!

Probier' die Rewrite einmal in einer .htaccess-Datei!

RewriteEngine On
RewriteBase /

#Artikel
RewriteRule ^artikel/(.*)\.html$ index.php?content=artikel&id=$1

Funktioniert wunderbar.

Grüße, Stefan

Beatmaster
07.11.02, 18:38
genau DAS möchte ich ja gerne ;)
RewriteBase / bringt da auch keinen Unterschied ...

Könnte es sein, dass am Apache 1.3.27 liegt?

Beatmaster
09.11.02, 03:56
geschafft! :)
Und weil in der hiesigen Forumsuche eine Anfrage auf mod_rewrite nicht sehr viel gebracht hat hier noch die Lösung des (dämlichen) Fehlers:

Es lag nicht an Apache 1.3.27, oder ob mod_rewrite statisch/dynamisch in den Häuptling eingebunden ist!
RewriteBase ist auch nicht so wichtig (es sei denn, man "verschiebt" ein ganzes Verzeichnis innerhalb des DocumentRoot) ;)

Aber die RewriteRule war falsch (was sonst)!
(Warum sie allerdings in der Virtualhost-Config funktioniert hat ist mir ein neues Rätsel ;) )

Das Slash bei ^/galerie$ war falsch (insofern hast Du mir doch geholfen, stefaan - THX a lot)

Es muss natürlich heissen:
RewriteRule ^galerie$ /kunst.php .... :)

Und nun ist die Webseite meiner Schwester (http://www.Katrin-Buchzik.de) endlich "suchmaschinenfreundlich" :cool:

Grüße an alle lInuxianer,
Michael