Seite 1 von 4

Link per .htaccess ändern

Verfasst: 03.03.2012, 16:06
von PSVFabian
Ich habe einen Link: www.hallo.de/lustig.php

Ich möchte anstatt diesem aber die Seite mit folgendem Link aufrufen können: www.hallo.de/lustig

Bisher sieht meine .htaccess so aus:

Code: Alles auswählen

RewriteEngine On

RewriteCond %{HTTP_HOST} ngp-news\.de [NC]
RewriteRule ^(.*)$ http://www.hallo.de/$1 [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.hallo\.de$
RewriteRule ^(.*)$ http://www.hallo.de/$1 [L,R=301]
ErrorDocument 404 /fehlerseite.php
RedirectPermanent /forum.php /
Was muss ich zusätzlich noch eintragen?

Vielen Dank!

Verfasst:
von

Verfasst: 03.03.2012, 16:16
von CyberNibbler
Erst einmal solltest du wissen was ein Link ist.
Das was du nennst, ist kein Link, sondern ein URI.
Hier kannst du dich belesen:
https://de.wikipedia.org/wiki/Hyperlink
https://de.wikipedia.org/wiki/Uniform_R ... Identifier

Verfasst: 03.03.2012, 18:04
von PSVFabian
Sorry, hatte es eilig. Der Unterschied ist mir durchaus bewusst.

Verfasst:
von
SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Verfasst: 03.03.2012, 19:01
von PSVFabian
Weiß das keiner?

Verfasst: 04.03.2012, 00:25
von holgi74
damit würde es funktionieren


redirect 301 /lustig https://www.hallo.de/lustig.php

oder lege ein Verzeichnis an "lustig" und kopiere den Inhalt der lustig.php in die index.php Datei

Verfasst: 04.03.2012, 11:24
von Melegrian
Dazu bedarf es eigentlich keiner Weiterleitung, eine Umschreibung sollte ausreichen. DirectorySlash Off verhindert, dass der Apache an "www.hallo.de/lustig" einen Slash anhängt und lustig dadurch als Verzeichnis wie in "www.hallo.de/lustig/" interpretiert wird.

Code: Alles auswählen

RewriteEngine on 
DirectorySlash Off

RewriteRule ^lustig$ /lustig.php [L]

Verfasst: 04.03.2012, 11:44
von PSVFabian
Ähm, ihr habt das etwas falsch verstanden. Ich möchte die neue URL aus seo-technischen Gründen so haben. Das soll also keine einfache Umleitung werden, sondern dauerhaft bleiben. Ich kann die Datei nicht einfach verschieben.

Verfasst: 04.03.2012, 11:49
von Melegrian
Bei einer Weiterleitung wird die URL der Zielseite angezeigt. Bei einer Umschreibung liefert hingegen der Server im Hintergrund die in der Regel angegebene Seite für die eingegebene URL aus. Nichts falsch verstanden, ist schon richtig so.

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteRule ^eingegeben$ /ausgeliefert.php [L]
Zwei getestete Beispiele:

"https://localhost/demoshop/demo"
"https://localhost/demoshop/eingegeben"

Code: Alles auswählen

RewriteEngine on
DirectorySlash Off

RewriteRule ^demoshop/demo$ /demoshop/demo.php [L]
RewriteRule ^demoshop/eingegeben$ /demoshop/demo.php [L]

Verfasst: 04.03.2012, 12:31
von PSVFabian
In der Theorie vielleicht. Bei mir klappt das nicht.

Ich bekomme nen 404er.

Verfasst: 04.03.2012, 12:33
von PSVFabian
.htaccess sieht jetzt so aus:

RewriteEngine On

RewriteCond %{HTTP_HOST} ngp-news\.de [NC]
RewriteRule ^(.*)$ https://www.hallo.de/$1 [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.hallo\.de$
RewriteRule ^(.*)$ https://www.hallo.de/$1 [L,R=301]
ErrorDocument 404 /fehlerseite.php
RedirectPermanent /forum.php /
DirectorySlash Off
RewriteRule ^/lustig$ /lustig.php [L]

Verfasst: 04.03.2012, 12:38
von Melegrian
PSVFabian hat geschrieben: RewriteRule ^/lustig$ /lustig.php [L]
Siehst Du in meinem Beispiel einen Slash am Beginn des Musters?
Bei mir sah das so aus:

Code: Alles auswählen

RewriteRule ^lustig$ /lustig.php [L] 
Um bei allen Dateien eines Verzeichnisses die Endungen abzuhängen, muss ein regulärer Ausdruck ähnlich dem folgenden verwendet werden.

Bei Test eingegeben: "https://localhost/demoshop/demo"
Es wird ausgeliefert: "https://localhost/demoshop/demo.php"

Code: Alles auswählen

RewriteEngine on 
DirectorySlash Off
RewriteRule ^demoshop/([a-zA-Z0-9_-]+)$ /demoshop/$1.php [L]
Ich hoffe nicht, dass es sich bei den umzuschreibenden URLs um Seiten des Forums handelt, sonst könnte das auch für Verwirrung sorgen.

Verfasst: 04.03.2012, 13:32
von PSVFabian
Okay, ohne den Slash am Anfang funktioniert es. Vielen Dank!

Jetzt habe ich noch folgende 301 Weiterleitung darunter gemacht, um DC zu vermeiden:

redirect 301 /lustig.php /lustig

Edit: Das gibt einen Fehler aus (Zu viele Umleitungen, meint Chrome)

Soll ich lustig.php einfach in der robots.txt ausklammern?

Verfasst: 04.03.2012, 13:40
von Melegrian
Wollte ich gerade schreiben:

Das dürfte nach meinem Verständnis im ungünstigsten Fall eine Endlosschleife ergeben. Für diesen Fall solltest Du dann lieber die Variante 5 und 6 von dieser Seite mal anschauen:

https://suchmaschinentricks.at/tipps-tr ... write.html

Verfasst: 04.03.2012, 13:41
von CyberNibbler
Probier es mit

Code: Alles auswählen

RedirectPermanent /lustig.php /lustig
direkt unter deinem anderen "RedirectPermanent".

Verfasst: 04.03.2012, 13:51
von PSVFabian
CyberNibbler hat geschrieben:Probier es mit

Code: Alles auswählen

RedirectPermanent /lustig.php /lustig
direkt unter deinem anderen "RedirectPermanent".
Funktioniert genauso nicht.

Noch was: Kann ich zusätzlich sowas hier auch noch alles umleiten?

lustig.php?do=matches&tid=39

Ich glaube nicht, oder?
Melegrian hat geschrieben:Wollte ich gerade schreiben:

Das dürfte nach meinem Verständnis im ungünstigsten Fall eine Endlosschleife ergeben. Für diesen Fall solltest Du dann lieber die Variante 5 und 6 von dieser Seite mal anschauen:

https://suchmaschinentricks.at/tipps-tr ... write.html
Öhm, die verstehe ich irgendwie nicht so ganz. :oops: