PHP RewriteRules - Probleme zwischen "lokal" und "webserver"

Blackbenji

Lieutenant
Registriert
Nov. 2009
Beiträge
565
Hallo,

ich spiele gerade mir RewriteRules rum und habe ein Problem:

PHP:
RewriteEngine on
RewriteRule ^content/([0-9]+)/?$ index.php?nav=c&id=$1 [NC,L]
RewriteRule ^page/([0-9]+)/?$ index.php?nav=p&id=$1 [NC,L]
RewriteRule ^filter/([0-9]+)/?$ index.php?nav=cf&id=$1 [NC,L]
RewriteRule ^contact/send/?$ index.php?contact=send [NC,L]
RewriteRule ^search/?$ index.php?nav=s [NC,L]

Das funktioniert lokal auf meinem xampp-server.
Wenn ich das hochlade auf meinen 1und1 Webspace funktioniert es nicht.

Eine Lösung ist
PHP:
RewriteBase /
einzufügen.

Das funktioniert dann aber lokal wieder nicht.

Edit: Lokal liegt natürlich nicht im /htdocs/ sondern im /htdocs/DevListCMS/

Da ich aktiv teste/entwickle und neue Änderungen auch "einspiele" hätte ich gerne eine RewriteRule die auf beiden System identisch funktioniert. Machbar oder ein Traum?
 
Zuletzt bearbeitet:
Klar machbar. Bring deinem lokalen Apache bei, mit Virtual Hosts zu arbeiten. Dann "legst" du dein Projekt als meinprojekt.meinpc.local an und schreibst in der windows hosts datei rein, dass meinprojekt.meinpc.local eben 127.0.0.1 (oder deine lokale ip) ist.
Schon sprichst du deine Webseite nicht mehr über http://localhost/meinprojekt/index.php an sondern über http://meinprojekt.meinpc.local/index.php
Dann klappt auch das Speichern von Passwörtern besser....
 
ich und meine ungeduld. die lösung:

PHP:
# Activation of the URL Rewriting
Options +FollowSymlinks
RewriteEngine On

# RewriteBase equivalent - Production
RewriteCond %{HTTP_HOST} !^localhost$
RewriteRule . - [E=REWRITEBASE:/production/path/]

# RewriteBase equivalent - Development
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule . - [E=REWRITEBASE:/development/path/]

# Rewriting
RewriteRule ^(.*)$ %{ENV:REWRITEBASE}index.php?page=$1 [L]

gefunden hier: http://stackoverflow.com/questions/...-i-specify-a-rewritebase-within-a-rewritecond
 
Zurück
Oben