Mod_rewrite Fehler

Tservarius

Mitglied
Hi, habe folgendes .htaccess-File mit folgenden Problemen

  • bei der Eingabe von http://www.servername.com wird das "www" entfernt, dieses soll nicht entfernt werden, aber logischerweise sollen denn auch nicht die folgenden Regeln durchlaufen werden, da es sonst crashen könnte, da "www" mit VAR1 als Subdomain verwechselt wird
  • Die Regel mit der Sitemap scheint irgendwie nicht so ganz zu funktionieren, eigentlich sollte die Syntax sein http://VAR1.servername.com/sitemap.xml ==> http://www.servername.com/gensitemap.php?stadt=VAR1
  • Bei der Regel mit der location.php wird die Subdomain VAR1 nicht als Parameter an die location.php übergeben (stadt=)
  • Bei der Regel mit der index.php wird die Subdomain VAR1 nicht als Parameter an die index.php übergeben (stadt=)

wäre super, wenn jemand mit Rat und Tat zur Seite stehen könnte.

Gruß,
Lars

Code:
Options +FollowSymLinks

RewriteEngine On

RewriteCond %{REQUEST_URI} ^(.+)\.html$ [NC]
RewriteCond %{DOCUMENT_ROOT}%1.php -f
RewriteRule ^(.+)\.html$ $1.php [QSA,L]

RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.servername\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.servername\.com$ [NC]
RewriteRule ^([^/]+)/?$ /index.php?stadt=%1&wochentag=%2 [QSA,L]

RewriteCond %{HTTP_HOST} !^www\.servername\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.servername\.com$ [NC]
RewriteRule ^sitemap\.xml$ /gensitemap.php3?stadt=%1 [QSA,L]

RewriteCond %{HTTP_HOST} !^www\.servername\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.servername\.com$ [NC]
RewriteRule ^(location)/([^/]+)/?$ /$1.php?stadt=%1&$1=$2 [QSA,L]
 
mmm. schade, dass noch niemand geantwortet hat, habe es schon ein bisschen selber hinbekommen, der code sieht nun so aus

Code:
RewriteEngine On

#Umschreiben von html in php dokumente (tarnen)
RewriteCond %{REQUEST_URI} ^(.+)\.html$ [NC]
RewriteCond %{DOCUMENT_ROOT}%1.php -f
RewriteRule ^(.+)\.html$   $1.php [QSA,L]

# Location rewriten
RewriteCond %{HTTP_HOST} !^www\.servername\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.servername\.com$ [NC]
RewriteRule ^(location)/([^/]+)/?$   /location.php?stadt=%3&location=$2 [QSA,L]

#Sitemap rewriten
RewriteCond %{HTTP_HOST} !^www\.servername\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.servername\.com$ [NC]
RewriteRule ^sitemap\.xml$   /gensitemap.php?stadt=%2 [QSA,L]

#Subhost und Wochentag rewriten (wenn beides da)
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.servername\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.servername\.com$ [NC]
RewriteRule ^([^/]+)/?$   /index.php?stadt=%2&wochentag=$1 [QSA,L]

#Subhost und Wochentag rewriten (wenn nur Subhost da)
RewriteCond %{HTTP_HOST} !^www\.servername\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([^\.]+)\.servername\.com$ [NC]
RewriteRule ^$ /index.php?stadt=%2 [QSA,L]

zwei fehler sind noch drinne, vielleicht kann mir da ja jemand helfen?

  • Bei der Eingabe von http://www.servername.com wird das "www" immer entfernt, dies sollte nicht so sein
  • Bei der Location-Rewrite regel, wird leider nicht die subdomain als parameter für "stadt" an die location.php übergeben, das feld bleibt einfach blank :( habe von %1-%3 und $1-$3 schon alles durchprobiert.. es bringt einfach nix :(

wäre super, wenn sich jemand die zeit nimmt zu antworten.

danke!
 
Probier mal Folgendes:
Code:
#Umschreiben von html in php dokumente (tarnen)
RewriteCond   %{REQUEST_URI}           ^.+\.html$   [NC]
RewriteCond   %{DOCUMENT_ROOT}%1.php   -f
RewriteRule   ^(.+)\.html$             $1.php   [QSA,L]

# Location rewriten
RewriteCond   %{HTTP_HOST}   !^www\.servername\.com$   [NC]
RewriteCond   %{HTTP_HOST}   ^(www\.)?([^\.]+)\.servername\.com$   [NC]
RewriteRule   ^location/([^/]+)/?$   /location.php?stadt=%2&location=$1   [QSA,L]

#Sitemap rewriten
RewriteCond   %{HTTP_HOST}     !^www\.servername\.com$   [NC]
RewriteCond   %{HTTP_HOST}     ^(www\.)?([^\.]+)\.servername\.com$   [NC]
RewriteRule   ^sitemap\.xml$   /gensitemap.php?stadt=%2   [QSA,L]

#Subhost und Wochentag rewriten (wenn beides da)
RewriteCond   %{ENV:REDIRECT_STATUS}   ^$
RewriteCond   %{HTTP_HOST}             !^www\.servername\.com$   [NC]
RewriteCond   %{HTTP_HOST}             ^(www\.)?([^\.]+)\.servername\.com$   [NC]
RewriteRule   ^([^/]+)/?$              /index.php?stadt=%2&wochentag=$1   [QSA,L]

#Subhost und Wochentag rewriten (wenn nur Subhost da)
RewriteCond   %{HTTP_HOST}   !^www\.servername\.com$   [NC]
RewriteCond   %{HTTP_HOST}   ^(www\.)?([^\.]+)\.servername\.com$   [NC]
RewriteRule   ^$             /index.php?stadt=%2   [QSA,L]
 
danke für deine hilfe, lag nicht daran, aber hab es anders gelöst, lag irgendwie daran, dass er mit 2 parametern stadt in 2 regeln durcheinanderkam, hab den parameter einfach nen bisschen umbenannt - nun gehts :)

danke trotzdem vielmals!
 
Zurück