Zur Navigation

.htaccess | Sprechende URLs

1 René (Gast)

Hallo leute,

mein problem ist das, ich muss eine bestehende Website Suchmaschinenoptimieren allerdings ohne den Grundaufbau zu verändern.

Ein derzeitiger Link sieht folgend aus:

http://www.domain.de/?open=leistungen&m=1 (im folgenden L1)
http://www.domain.de/?open=referenzen&m=2 (im folgenden L2)

(&m=x) steht für die jeweiligen Metatags die aufgerufen werden.

Der .htaccess möchte ich nun verklickern, diese soll wenn ich einen Link mit der URL http://www.domain.de/referenzen (im folgenden S2) klicke, L2 aufrufen und S2 im Adressfeld anzeigen.

Wie mache ich das am besten?

Ich hoffe auf schnelle Antwort.

Besten gruß
René

12.02.2010 14:18

2 Jörg Kruse

Das wird so nicht möglich sein, da man auch noch wissen muss, welchen Wert m haben soll; diesen Wert müsstest du also auch noch mit in die statische URL übernehmen, z.B. http://www.domain.de/2-referenzen. Mit Mod_rewrite ließe sich das dann so realisieren:

RewriteEngine on
RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$1

12.02.2010 15:15 | geändert: 12.02.2010 15:16

3 René (Gast)

Ok vielen Dank. Ist der Wert (2) ersetzbar durch ein Wort?
Bin grad ni am Arbeitsrechner :)

12.02.2010 15:21

4 Jörg Kruse

Wenn du das auswertende Script so umprogrammierst, dass es auch was mit ?open=referenzen&m=irgendeinwort etwas anfangen kann, ja - ansonsten nein.

12.02.2010 15:32

5 René (Gast)

Öhm nein.

ok, nochmal zum festhalten damit ich das später versuchen kann:
ich kopiere nun für jeden Link (insgesammt 6 Links) jeweils 6 von diesen zeilen in die .htaccess

RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$1
RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$2
RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$3
RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$4
RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$5
RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$6

und jede Zeile führt mich dann auf folgende URLS

http://www.domain.de/1-unternehmen
http://www.domain.de/2-leistung
http://www.domain.de/3-projekte
http://www.domain.de/4-referenzen
http://www.domain.de/5-kontakt
http://www.domain.de/6-impressum

?? :)

12.02.2010 15:43

6 Jörg Kruse

Nein, du benötigst nur diese eine Zeile für alle URLs dieses Musters:

RewriteRule ^([0-9]+)-(.+)$ ?open=$2&m=$1

$1 nimmt den ersten und $2 den zweiten geklammerten Ausdruck im Muster wieder auf

12.02.2010 15:47

7 René (Gast)

Alles klar :) Dann werde ich das mal versuchen. Ich hab hier auf arbeit gerade FTP Zugang zum projekt bekommen. ich würde das gern mit der Derzeitigen Struktur mal versuchen die so aussieht:

http://www.domain.de/?open=leistungen

Also ohne das &m=x

Wie würde das denn bei dieser Variante aussehen? Bin völliger blödi im htaccess bereich :)

12.02.2010 15:56

8 Jörg Kruse

ich würde das dann so machen:

RewriteRule ^([^/^\.]+)$ ?open=$1

"[^/^\.]" beinhaltet alle Zeichen außer dem Punkt und dem Slash, so dass keine Dateien mit Punkt (robots.txt, Bilddateien etc.) und Verzeichnisse rewritet werden

12.02.2010 16:59

9 René (Gast)

Danke sehr. Funktioniert natürlich :)
Obige variante werde ich später versuchen. Wird schon klappen. Danke für die schnelle Hilfe

Besten gruß
René

12.02.2010 17:10

10 René (Gast)

Hallo Jörg,

also irgendwie klappt das nicht. Einerseits werden keine CSS dateien geladen und andererseits werden die Dynamischen Inhalte nicht ausgegeben.

Hier mal das Script etwas verkürzt:

<?PHP /* META DATEIEN (SEO) */
if(!isset($_GET['m'])) $_GET['m'] = '1';
if($_GET['m']){switch($_GET['m']){
case 1: include("include/_doctype/meta-unternehmen.php"); break;
}} ?>

<?PHP /* STARTSEITE (index.php) */
if(!isset($_GET['open'])) $_GET['open'] = "unternehmen";

/* CONTENT */
elseif($_GET['open']=="unternehmen")include("unternehmen.php");

/* ERROR 404 :: Weiterleitung auf Startseite */
else include("error.php"); ?>

Ein Link sieht dann so aus: ?open=unternehmen&m=1

Wie ist das zu erklären?

Danke und beste Grüße
René

14.02.2010 17:26