mod_rewrite
Nelio
- webserver
Hallo Leute,
es geht um die .htaccess.
Ich komme trotz tutorials und http://www.modrewrite.de/mod_rewrite.syntax.phtml
nicht dahinter wie ich es umsetzen muss, dass http://variable.domain.tld/
und http://domain.tld/variable jeweils auf http://domain.tld/index.php?site=variable
umgeschrieben werden.Könnte mir evtl. jemand dabei helfen.
Hatte es so probiert für die zweite variante
RewriteEngine on
Options FollowSymLinks
RewriteBase /
RewriteRule index.html$ index.php
RewriteRule ^/(.*)$ index.php?site=$1 [L]
Mit freundlichen Grüßen
Nelio
Hi,
Ich komme trotz tutorials und http://www.modrewrite.de/mod_rewrite.syntax.phtml
nicht dahinter wie ich es umsetzen muss, dass http://variable.domain.tld/
und http://domain.tld/variable jeweils auf http://domain.tld/index.php?site=variable
umgeschrieben werden.
Für erstere Variante müsstest du erst mal sowas wie eine Wildcard-Subdomain einrichten - und dann beim Rewriten auf die Umgebungsvariable HTTP_HOST zugreifen.
RewriteBase /
RewriteRule index.html$ index.php
RewriteRule ^/(.*)$ index.php?site=$1 [L]
Der führende Slash dürfte schon mal fehl am Platze sein.
Ausserdem trifft diese Regel auch auf deine index.php zu, so dass du in einer Endlosschleife landen würdest - weil der Apache nach dem Umschreiben so tut, als wäre der umgeschriebene Request gerade neu reingekommen, und auch darauf wieder alle Regeln anwendet. Und nein, das Flag [L] verhindert das nicht.
Entweder schreibst du also die Regel so um, dass sie auf die index.php nicht matched - oder du schaust dir an, wie man mit RewriteCond physisch vorhandene Dateien/Ordner vom Rewriting ausschliessen kann.
MfG ChrisB
Habe es mir jetzt so überlegt:
RewriteCond %{HTTP_HOST} ^([^.]+).domain.tld$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^blog.domain.tld$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^media.domain.tld$ [NC]
RewriteRule ^(.*)$ http://domain.tld/ [R=301,L]
RewriteCond %{HTTP_HOST} ^([^.]+).domain.tld$ [NC]
RewriteRule ^(.*)$ http://menschlich-hellwach.de/?site=$1 [L]
Das Problem ist, wenn ich jetzt auf die subdomain zugreife bekomme ich die 500er Fehlermeldung.
Was stimmt nicht?
MfG
Nel
RewriteRule ^(.*)$ http://menschlich-hellwach.de/?site=$1 [L]
es heisst natürlich vglw.: RewriteRule ^(.*)$http://domain.tld/?site=$1 [L]
Mit freundlichen Grüßen
Nelio
So auf ein neues:
ich ahbe es jetzt hinbekommen.unzwar so:
Code:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^([^.]+).menschlich-hellwach.de$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^(admin|art|blog|media).?menschlich-hellwach.de$ [NC]
RewriteRule ^ http://menschlich-hellwach.de%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
RewriteRule .* http://menschlich-hellwach.de/index.php?site=%1 [R=301,L]
Nun zum wichtigne teil.was muss ich tun, damit die subdomain in der adressleiste stehenbleibt(also das es nur intern die index.php?site=%1 ist)?
ich hab es einmal einfach ohne [R] und einmal so probiert:
Code:
RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
RewriteRule .* index.php?site=%1 [L]
aber das klappt nicht.
Bitte helft mir Smile
Dank und Grüße
Nelio
RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
RewriteRule .* index.php?site=%1 [L]
Möglicherweise möchtest du nur die Anfrage auf "/" erfassen, also
RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
RewriteRule ^$ index.php?site=%1 [L]
Möglicherweise möchtest du nur die Anfrage auf "/" erfassen, also
RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
RewriteRule ^$ index.php?site=%1 [L]
Hi, danke aber leider nicht.
Das würde ja dazu führen das er versucht die index.php in der sub anzusprechen, aber ich möchte die index.php im root ansprechen und halt den entsprechenden parameter(die subdomain) übergeben, ohne dabei ein [R] zu nutzen.
Also das in der Adressleiste steht: "http://blog.menschlich-hellwach.de" aber "http://menschlich-hellwach.de/index.php?site=blog" aufgerufen wird.
Ich hoffe du kannst mir tortzdem helfen.
Danke.
Mit freundlichen Grüßen
Nelio
»» Möglicherweise möchtest du nur die Anfrage auf "/" erfassen, also
»»
»» RewriteCond %{HTTP_HOST} ^([^/.]+).menschlich-hellwach.de$ [NC]
»» RewriteRule ^$ index.php?site=%1 [L]
»»Hi, danke aber leider nicht.
Das würde ja dazu führen das er versucht die index.php in der sub anzusprechen, aber ich möchte die index.php im root ansprechen und halt den entsprechenden parameter(die subdomain) übergeben, ohne dabei ein [R] zu nutzen.Also das in der Adressleiste steht: "http://blog.menschlich-hellwach.de" aber "http://menschlich-hellwach.de/index.php?site=blog" aufgerufen wird.
Ich hoffe du kannst mir tortzdem helfen.
Danke.
Mit freundlichen Grüßen
Nelio
edit:
So ich hab es geschafft, indem ich bei meinem webhoster einfach für jede subdomain einen entsprechenden Alias eingetragen habe.Nicht das was ich wollte, aber es funzt.
Nun gehts weiter: Wie schaffe ich es, das alles was hinter der domain steht(bei einer bestimmten subdomain) in parameter umgewandelt wird?
Bsp.: blog.menschlich-hellwach.de/date/title == blog.menschlich-hellwach.de/ addparamstoexistingurl title=title&date=date
bin mir nicht gnaz sicher, da ja theoretisch blog.menschlich-hellwach.de schon einen parameter uebergibt.
Danke schonmal im vorraus.
Mit freundlichen Grüßen
Nelio