redirect mit htaccess problemchen

Alles, was den Apache betrifft, kann hier besprochen werden.

redirect mit htaccess problemchen

Postby Moguai77 » 09. December 2008 19:49

Hallo zusammen,

aufgrund eines komischen Problems mit mit dem Übersetzungsmodul M17n von Joomla (er zeigt mir beim Laden der Startseite nicht den Link zur Übersetzung an, sondern erst wenn man auf den Menüpunkt Startseite in der Navi klickt. Dann werden nämlich bestimmte URL-Parameter angehängt) brauche ich wohl einen Redirect in Form von .htacess. Ich habe also eine .htaccess-Datei erstellt mit folgendem Inhalt und sie im Transfermodus ASCII in das Verzeichnis geladen, in dem die index.php liegt:

Code: Select all
Redirect permanent index.php http://www.subdomain.domain.de/index.php?option=com_content&view=frontpage&Itemid=1


Nichts passiert beim Reload, die URL bleibt ohne Parameter.

Dann habe ich testweise die domain geändert auf eine andere existierende URL, aber nichts passiert. Hat es also nie funktioniert?

Wenn ich hingegen folgendes versuche, liefert mir Apache 2.0.63 einen HTTP 500 Status.

Code: Select all
Redirect permanent index.php index.php?option=com_content&view=frontpage&Itemid=1


Er erkennt die .htaccess also schon. Es muss demnach ein Fehler in meiner Syntax vorliegen. Wer kann mir helfen?

Danke!!
LG Moguai
Moguai77
 
Posts: 6
Joined: 08. November 2008 13:46

Re: redirect mit htaccess problemchen

Postby Wiedmann » 09. December 2008 20:16

Code: Select all
Redirect permanent index.php http://www.subdomain.domain.de/index.php?option=com_content&view=frontpage&Itemid=1

Nichts passiert beim Reload, die URL bleibt ohne Parameter.

Im Grunde steht die Antwort im:
Apache-Manual wrote:The old URL-path is a case-sensitive (%-decoded) path beginning with a slash. A relative path is not allowed.


Da du die Umleitung aber bestimmt nur haben willst, wenn es überhaupt keinen Querystring gibt, wirst du für dein Problem mod_rewrite nehmen werden müssen.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: redirect mit htaccess problemchen

Postby Moguai77 » 09. December 2008 20:27

Da du die Umleitung aber bestimmt nur haben willst, wenn es überhaupt keinen Querystring gibt, wirst du für dein Problem mod_rewrite nehmen werden müssen.


Wenn ich dich richtig verstehe, leitet Apache mir (wenn ich den / vor index.php setze) alle Aufrufe a la index?irgendeinURLParameter auf http://www.subdomain.domain.de/index.ph ... e&Itemid=1 um, richtig?

Das wäre natürlich schlecht, weil alle Seiten mit index.php anfangen.

Wie würde der entsprechende mod_rewrite befehl denn heißen? Ich bin noch nicht so tief im Thema Server drin und würde nur wieder probieren können. :D

Danke!!
LG Moguai
Moguai77
 
Posts: 6
Joined: 08. November 2008 13:46

Re: redirect mit htaccess problemchen

Postby Wiedmann » 09. December 2008 20:44

mod_rewrite muss halt grundsätzlich geladen sein...

Sollte dann etwa so ausehen:
Code: Select all
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index.php$ index.php?option=com_content&view=frontpage&Itemid=1 [R=301]
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: redirect mit htaccess problemchen

Postby Moguai77 » 09. December 2008 20:59

Wiedmann wrote:mod_rewrite muss halt grundsätzlich geladen sein...

Sollte dann etwa so ausehen:
Code: Select all
RewriteEngine On
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index.php$ index.php?option=com_content&view=frontpage&Itemid=1 [R=301]


Vielen Dank für die schnelle Hilfe! Ich wollte ich könnte eine Gutmeldung geben, aber leider habe ich noch zwei kleine Problemchen:
Der rewrite greift nicht, wenn ich http://www.subdomain.domain.de aufrufe, sondern nur, wenn ich http://www.subdomain.domain.de/index.php aufrufe, was der normale Internetnutzer nicht tut. Sorry, dass ich dass nicht gleich erwähnt hatte.

Wenn ich die URL mit /index.php aufrufe, bekomme ich folgenden Fehler (die .htaccess liegt im selben Verzeichnis wie die index.php)
HTTP 404
http://www.subdomain.domain.de/web/1/00 ... e&Itemid=1 was not found on this server.

Ich hoffe, ich nerve noch nicht, aber ich glaube ich stehe kurz vor der Lösung des Problems.

Danke!!
LG Moguai
Moguai77
 
Posts: 6
Joined: 08. November 2008 13:46

Re: redirect mit htaccess problemchen

Postby Wiedmann » 09. December 2008 21:30

Wenn ich die URL mit /index.php aufrufe,

Damit meinst du diesen Aufruf:
Der rewrite greift ... nur, wenn ich http://www.subdomain.domain.de/index.php aufrufe,

Wo der Rewrite dann tut, aber mit einem falschen Ergebnis?

bekomme ich folgenden Fehler (die .htaccess liegt im selben Verzeichnis wie die index.php)

Benutzt du tatsächlich obige URI (die Datei liegt im DocumentRoot), oder benutzt du noch Verzeichnisnamen in der URI (spricht die Datei liegt in einem Unterverzeichnis oder Alias?)
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: redirect mit htaccess problemchen

Postby Moguai77 » 09. December 2008 22:33

Wiedmann wrote:
Wenn ich die URL mit /index.php aufrufe,

Damit meinst du diesen Aufruf:
Der rewrite greift ... nur, wenn ich http://www.subdomain.domain.de/index.php aufrufe,

Wo der Rewrite dann tut, aber mit einem falschen Ergebnis?

Ja, richtig, aber der rewrite sollte auch funktionieren, wenn nur http://www.subdomain.domain.de in die Adressleiste des Browsers eingegeben wurde (normaler Aufruf der Internetpräsenz). Dann lädt er ja automatisch die index.php und sollte sofort auf die index.php?mitdenangegebenenURLParametern weiterleiten.

bekomme ich folgenden Fehler (die .htaccess liegt im selben Verzeichnis wie die index.php)

Benutzt du tatsächlich obige URI (die Datei liegt im DocumentRoot), oder benutzt du noch Verzeichnisnamen in der URI (spricht die Datei liegt in einem Unterverzeichnis oder Alias?)


(siehe blaue Anmerkung oben)
Ich hoffe, ich versteh dich da richtig. Nachdem ich deinen Rewrite-Vorschlag (unverändert) in die .htaccess geschrieben hatte (als einzigen Eintrag mit drei Zeilen) stand in der Adressleiste des Browser nach Aufruf von http://www.subdomain.domain.de/index.php folgende URL: http://www.subdomain.domain.de/web/1/00 ... e&Itemid=1
(also hat Apache den gesamten absoluten Pfad bis zur index.php an die URL drangehängt?)


und der Apache meint: Not Found

The requested URL /web/1/009/029/739/79819/htdocs/HPB/index.php was not found on this server.
Apache/2.0.63 Server at http://www.subdomain.domain.de Port 80

Die index.php liegt beim Provider absolut im Pfad, den Apache in der 404 Meldung angibt (und den er an subdomain.domain.de angehängt hatte). Mein Root ist meiner Meinung nach /htdocs. Neben htdocs gibt es noch zwei andere Verzeichnisse auf derselben Ebene (für Logfiles und cgi), aber ich kann in das Verzeichnis (in dem das Verzeichnis htdocs und die beiden anderen Verzeichnisse liegen) zwar Dateien ablegen, sehe diese aber nicht (also kein Zugriff auf dieser Ebene). Nach meiner Logik müsste mein Rootverzeichnis deshalb /htdocs sein, oder? HPB ist der Projektordner, in dem die index.php sowie die .htaccess liegen


Danke nochmal!!
LG Moguai
Moguai77
 
Posts: 6
Joined: 08. November 2008 13:46

Re: redirect mit htaccess problemchen

Postby Wiedmann » 09. December 2008 23:11

Nach meiner Logik müsste mein Rootverzeichnis deshalb /htdocs sein, oder?

Ist es normal auch. Allerdings ist das Verzeichnis auf der Platte nicht "/htdocs" sondern "/web/1/009/029/739/79819/htdocs" als DocumentRoot, mit der dazugehörigen URI "http://www.subdomain.domain.de/". (könnte man aber mit z.B. phpinfo() herausfinden).

HPB ist der Projektordner, in dem die index.php sowie die .htaccess liegen

Der Ordner HPB ist also tatsächlich auf der Platte das Verzeichnis "/web/1/009/029/739/79819/htdocs/HPB".
Wieso wird dann die "index.php" in diesem Verzeichnis nicht über "http://www.subdomain.domain.de/HPB/index.php" aufrufen, sondern mit "http://www.subdomain.domain.de/index.php"?

Oder anders: Bei der URI "http://www.subdomain.domain.de/index.php" müsste eigentlich das Verzeichnis "/web/1/009/029/739/79819/htdocs/HPB" dein DocumentRoot sein. (Aber es scheint sich hier wohl um eine Kombination von Symlinks bei deinem ISP und dem hier wohl vorliegenden Fall eines VHosts auf das Verzeichnis "./HPB" zu handeln.)

Wie dem auch sei, wenn das bei einer normalen Serverkonfig auch unötig sein sollte, könnte man noch fogendes ergänzen:
Code: Select all
RewriteBase  /


Der rewrite greift nicht, wenn ich "http://www.subdomain.domain.de" aufrufe, sondern nur, wenn ich "http://www.subdomain.domain.de/index.php" aufrufe,

Dann leiten wir das Erste erstmal auf das 2. um:
Code: Select all
RewriteRule ^$  index.php


Zusammen also:
Code: Select all
RewriteEngine On
RewriteBase /
RewriteRule ^$ index.php
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^index.php$ index.php?option=com_content&view=frontpage&Itemid=1 [R=301]
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Re: redirect mit htaccess problemchen

Postby Moguai77 » 10. December 2008 21:26

Super! Es funktioniert! Vielen Dank für den tollen support!!
Moguai77
 
Posts: 6
Joined: 08. November 2008 13:46


Return to Apache

Who is online

Users browsing this forum: No registered users and 20 guests