forum@modrewrite.de
RegistrierenSuchenFAQMitgliederlisteBenutzergruppenLogin
Neue Antwort erstellen Seite 1 von 1
Subdomains umleiten
Autor Nachricht
Antworten mit Zitat
Beitrag Subdomains umleiten 
Hallo liebe Boarduser,

ich habe ein kleines Problem mit, was sonst, mod_rewrite Wink

Also: Ich habe eine Website, die 4 Subdomains hat:

www.eifx.de
text.eifx.de
print.eifx.de
mobile.eifx.de

Nun möchte ich, das wenn jemand www.bla.de aufruft und dort Links öffnet wie "news" oder "blog" es in der Adresszeile so aussieht:
www.eifx.de/news oder www.eifx.de/blog; intern funktioniert das dann mit www.eifx.de/index.php?root=$1

Dies hab ich schon hinbekommen...

Nun soll wenn beispielsweise text.eifx.de aufgerufen wird, soll er auf www.eifx.de/index.php?root=$1&mode=text verlinken...

Auch das funktioniert schon... jedoch nur teilweise, weil nun das Erste nicht mehr funktioniert...

Hier mal das, was ich schon hab:

Code:
ErrorDocument 403 /403_forbidden
ErrorDocument 404 /404_not_found
ErrorDocument 501 /501_not_implemented

RewriteEngine On
RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]

RewriteCond %{HTTP_HOST} ^mobile\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=mobile [QSA]
RewriteCond %{HTTP_HOST} ^print\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=print [QSA]
RewriteCond %{HTTP_HOST} ^text\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=text [QSA]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Benutzer-Profile anzeigen Private Nachricht senden
Antworten mit Zitat
Beitrag Re: Subdomains umleiten 
EifX hat Folgendes geschrieben:
Hallo liebe Boarduser,

ich habe ein kleines Problem mit, was sonst, mod_rewrite Wink

Also: Ich habe eine Website, die 4 Subdomains hat:

www.eifx.de
text.eifx.de
print.eifx.de
mobile.eifx.de

Nun möchte ich, das wenn jemand www.bla.de aufruft und dort Links öffnet wie "news" oder "blog" es in der Adresszeile so aussieht:
www.eifx.de/news oder www.eifx.de/blog; intern funktioniert das dann mit www.eifx.de/index.php?root=$1

Dies hab ich schon hinbekommen...

Nun soll wenn beispielsweise text.eifx.de aufgerufen wird, soll er auf www.eifx.de/index.php?root=$1&mode=text verlinken...

Auch das funktioniert schon... jedoch nur teilweise, weil nun das Erste nicht mehr funktioniert...

Hier mal das, was ich schon hab:

Code:
ErrorDocument 403 /403_forbidden
ErrorDocument 404 /404_not_found
ErrorDocument 501 /501_not_implemented

RewriteEngine On
RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]

RewriteCond %{HTTP_HOST} ^mobile\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=mobile [QSA]
RewriteCond %{HTTP_HOST} ^print\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=print [QSA]
RewriteCond %{HTTP_HOST} ^text\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=text [QSA]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Wenn Du extern umleitest, wird auch die Adresszeile geaendert, wenn nicht P(Proxy) als Flag gesetzt ist.
Mit

Code:

RewriteRule ^(.*)$ /index.php?root=$1&view=text [QSA]


sollte es funktionieren.

Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Antworten mit Zitat
Beitrag Re: Subdomains umleiten 
kartoffelkopf hat Folgendes geschrieben:
EifX hat Folgendes geschrieben:
Hallo liebe Boarduser,

ich habe ein kleines Problem mit, was sonst, mod_rewrite Wink

Also: Ich habe eine Website, die 4 Subdomains hat:

www.eifx.de
text.eifx.de
print.eifx.de
mobile.eifx.de

Nun möchte ich, das wenn jemand www.bla.de aufruft und dort Links öffnet wie "news" oder "blog" es in der Adresszeile so aussieht:
www.eifx.de/news oder www.eifx.de/blog; intern funktioniert das dann mit www.eifx.de/index.php?root=$1

Dies hab ich schon hinbekommen...

Nun soll wenn beispielsweise text.eifx.de aufgerufen wird, soll er auf www.eifx.de/index.php?root=$1&mode=text verlinken...

Auch das funktioniert schon... jedoch nur teilweise, weil nun das Erste nicht mehr funktioniert...

Hier mal das, was ich schon hab:

Code:
ErrorDocument 403 /403_forbidden
ErrorDocument 404 /404_not_found
ErrorDocument 501 /501_not_implemented

RewriteEngine On
RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]

RewriteCond %{HTTP_HOST} ^mobile\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=mobile [QSA]
RewriteCond %{HTTP_HOST} ^print\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=print [QSA]
RewriteCond %{HTTP_HOST} ^text\.(.*) [NC]
RewriteRule ^(.*)$ http://www.eifx.de.localhost/index.php?root=$1&view=text [QSA]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Wenn Du extern umleitest, wird auch die Adresszeile geaendert, wenn nicht P(Proxy) als Flag gesetzt ist.
Mit

Code:

RewriteRule ^(.*)$ /index.php?root=$1&view=text [QSA]


sollte es funktionieren.


Dank dir schon mal für deine schnelle Antwort Smile
Ich hab deinen Rat in die Tat umgesetzt, jedoch klappt die ganze Geschichte noch nicht so wie ich das gern hätte Wink
mobile.eifx.de.localhost funktioniert perfekt, jedoch alles was danach kommt, also print.eifx.de.localhost usw. wirft ein Internal Server Error 500 zurück...

Hier noch mal die Version, wie es jetzt ist:

Code:
ErrorDocument 403 /403_forbidden
ErrorDocument 404 /404_not_found
ErrorDocument 501 /501_not_implemented

RewriteEngine On
RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]

RewriteCond %{HTTP_HOST} ^mobile\.(.*) [NC]
RewriteRule ^(.*)$ /index.php?root=$1&view=mobile [QSA]
RewriteCond %{HTTP_HOST} ^print\.(.*) [NC]
RewriteRule ^(.*)$ /index.php?root=$1&view=print [QSA]
RewriteCond %{HTTP_HOST} ^text\.(.*) [NC]
RewriteRule ^(.*)$ /index.php?root=$1&view=text [QSA]
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Benutzer-Profile anzeigen Private Nachricht senden
Antworten mit Zitat
Beitrag  
Wie lautet denn der Error 500? Die Rules sehen ja schon ziemlich aehnlich aus Smile

Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Antworten mit Zitat
Beitrag  
Das wird mir ausgegeben:

Zitat:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6 Server at print.eifx.de.localhost Port 80


Da hab ich mir die error.log dazu mal angeschaut... haben wir da jetzt ne Endlosschleife gebastelt?

Zitat:
[Mon Feb 08 17:38:56 2010] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.


Benutzer-Profile anzeigen Private Nachricht senden
Antworten mit Zitat
Beitrag  
Tatsaechlich ein Loop. HTTP_HOST mit (.*) ist halt nicht so gut.

Im Prinzip kannst Du den letzten Blick verkuerzen und im HTTP_HOST den Domainpart eintragen:

Code:

RewriteCond %{HTTP_HOST} ^(mobile|print|text).example.com [NC]
RewriteRule ^(.*)$ /index.html?root=$1&view=%1 [QSA,L]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Antworten mit Zitat
Beitrag  
kartoffelkopf hat Folgendes geschrieben:
Tatsaechlich ein Loop. HTTP_HOST mit (.*) ist halt nicht so gut.

Im Prinzip kannst Du den letzten Blick verkuerzen und im HTTP_HOST den Domainpart eintragen:

Code:

RewriteCond %{HTTP_HOST} ^(mobile|print|text).example.com [NC]
RewriteRule ^(.*)$ /index.html?root=$1&view=%1 [QSA,L]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Hey, genialer Gedanke. Das macht die ganze Sache immerhin schon mal übersichtlicher Wink. Leider bleiben die Fehlermeldungen die Gleichen Sad
Man könnte das Problem ja auch in PHP lösen, jedoch find ich das eleganter wenn die htaccsess-Datei das übernimmt Wink

Mein Code jetzt:
Code:
ErrorDocument 403 /403_forbidden
ErrorDocument 404 /404_not_found
ErrorDocument 501 /501_not_implemented

RewriteEngine On
RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]
RewriteCond %{HTTP_HOST} ^(mobile|print|text).eifx.de.localhost [NC]
RewriteRule ^(.*)$ /index.php?root=$1&view=%1 [QSA,L]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Benutzer-Profile anzeigen Private Nachricht senden
Antworten mit Zitat
Beitrag  
EifX hat Folgendes geschrieben:


Mein Code jetzt:
Code:
ErrorDocument 403 /403_forbidden
ErrorDocument 404 /404_not_found
ErrorDocument 501 /501_not_implemented

RewriteEngine On
RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]
RewriteCond %{HTTP_HOST} ^(mobile|print|text).eifx.de.localhost [NC]
RewriteRule ^(.*)$ /index.php?root=$1&view=%1 [QSA,L]
RewriteRule ^(.*)$ /index.php?root=$1 [QSA,L]


Ich glaub, die CHAIN-Rules (C) sind irgendwie Asche. Ersetze mal [C] durch [F] und es sollte nicht mehr loopen.

Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Antworten mit Zitat
Beitrag  
So, nun hab ich ein 403 Forbidden auf allen Kanälen Wink

Zitat:
Forbidden

You don't have permission to access / on this server.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6 Server at www.eifx.de.localhost Port 80


Benutzer-Profile anzeigen Private Nachricht senden
Antworten mit Zitat
Beitrag  
EifX hat Folgendes geschrieben:
So, nun hab ich ein 403 Forbidden auf allen Kanälen Wink

Zitat:
Forbidden

You don't have permission to access / on this server.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6 Server at www.eifx.de.localhost Port 80


Das ist schoen Wink

Denkst Du nochmal ueber die 2 Regeln nach und was Du mit denen bezwecken wolltest. Es verbietet halt alles, was nicht index.php heisst oder include:


Code:

RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]


Der Error 500 kommt additional durch das !
Vielleicht willst Du ja sowas dabei bewirken:

Code:

RewriteCond %{REQUEST_URI} !(index.php|/include) [NC]
RewriteRule ^/$ - [F]


Dann geht aber auch nur http://www.example.com/index.php und nicht mehr http://www.example.com
Also am besten die zwei Sachen weglassen...

Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Antworten mit Zitat
Beitrag  
kartoffelkopf hat Folgendes geschrieben:
EifX hat Folgendes geschrieben:
So, nun hab ich ein 403 Forbidden auf allen Kanälen Wink

Zitat:
Forbidden

You don't have permission to access / on this server.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6 Server at www.eifx.de.localhost Port 80


Das ist schoen Wink

Denkst Du nochmal ueber die 2 Regeln nach und was Du mit denen bezwecken wolltest. Es verbietet halt alles, was nicht index.php heisst oder include:


Code:

RewriteRule !index\.php - [C]
RewriteRule !include(.*) - [C]


Der Error 500 kommt additional durch das !
Vielleicht willst Du ja sowas dabei bewirken:

Code:

RewriteCond %{REQUEST_URI} !(index.php|/include) [NC]
RewriteRule ^/$ - [F]


Dann geht aber auch nur http://www.example.com/index.php und nicht mehr http://www.example.com
Also am besten die zwei Sachen weglassen...


Vielleicht sollte ich an dieser Stelle dir erklären wie meine Website aufgebaut ist Wink Das was da steht ist richtig, genau so wie ich es wollte. Warum? Nun, ich führe vom Prinzip her nur die index.php im root-Verzeichnis aus und includiere (include halt Wink) alle Seiten, die ich für die aktuelle Anfrage benötige. Nebenbei läuft ein Templatesystem "Smarty" was ebenfalls von der index.php aufgerufen wird und den ganzen HTML-Bla erledigt...
Der Ordner "include" beinhaltet alles, was ich irgendwie extra in meine Website einbinden muss (Stylesheets, Javascripts, Bilder,...) und somit muss ich auch auf den zugreifen können. Die index.php Datei liegt im root-Verzeichnis, so gut wie alles andere liegt im Verzeichnis "run", wohin ich in der PHP-Datei hinnavigiere...
Somit soll man nur Zugriff auf den Ordner "include" und die Datei index.php haben. Alle anderen PHP-Dateien werden ja includet...

Mit dem Codeschnipsel von dir klappt es leider auch nicht, da hab ich dann wieder nen 500ter Wink

Zitat:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6 Server at www.eifx.de.localhost Port 80


Benutzer-Profile anzeigen Private Nachricht senden
Antworten mit Zitat
Beitrag  
EifX hat Folgendes geschrieben:


The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, webmaster@localhost and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.2.9 (Win32) DAV/2 mod_ssl/2.2.9 OpenSSL/0.9.8i mod_autoindex_color PHP/5.2.6 Server at www.eifx.de.localhost Port 80


Und was steht im ErrorLog?

Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Antworten mit Zitat
Beitrag  
Ebenfalls das übliche Smile Leider...

Zitat:

[Thu Feb 11 10:33:15 2010] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.


Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:
Neue Antwort erstellen Seite 1 von 1
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.