.htaccess für CMS Conpresso

Eines der wichtigsten Anwendungsgebiete von mod_rewrite ist das umschreiben von dynamischen in statische URLs um "suchmaschinenfreundliche URLs" zu erzeugen. Aber was ist besser fürs Ranking? http://www.url.com/12_2.htm, http://www.url.com/url,12,2.htm oder doch lieber http://www.url.com/12/2/url/ Fragen zum URL-Design werden hier diskutiert.

Moderator: Super-Mod

.htaccess für CMS Conpresso

Beitragvon Dani1978 » 17.12.2005 11:41

Hallo Leute,
wer kann mir helfen bei der Änderung der Datei-Adresse , welche vom CMS Conpresso generiert werden. Habe folgende Änderungen gemacht. Muss nur jedes Mal die .htaccess-datei in jedes Rubrikverzeichnis laden und das ist aufwendig. Vielleicht hat jemand Verbessserungsvorschläge.

Hier meine Variante!
Schritt 1: Anlegen der .htaccess Datei. Diese habe ich direkt in den betreffenden Ordner gelegt, da ich nur in einen Ordner diese funktion benötigte.

diese hatte folgenden inhalt:
RewriteEngine on
RewriteRule ^detail_([0-9]+).html$ detail.php?nr=$1

ich wollte von detail.php?nr=123&kategorie=news einfach detail_123.html machen.



Schritt 2: Ändern folgender Dateien.

_include/template_php_header.php

alle einträge welche

detail.php?nr=".$db_nr."&kategorie=".$directory."\"

enthalten mit suchen und ersetzen durch folgendes ersetzen:

detail_".$db_nr.".html\"


_include/template_first_header.php

alle einträge welche

detail.php?nr='.$db_nr.'&kategorie='.$directory.'

enthalten mit suchen und ersetzen durch folgendes ersetzen:

detail_'.$db_nr.'.html
Dani1978
.
.
 
Beiträge: 8
Registriert: 17.12.2005 11:25

Beitragvon Bob » 17.12.2005 17:58

Muss nur jedes Mal die .htaccess-datei in jedes Rubrikverzeichnis laden und das ist aufwendig.

Du könntest auch eien im root unter /.htaccess anlegen. Du musst dann nur entspr. den Pattern und die Substitution anpassen:

Code: Alles auswählen
RewriteEngine on
RewriteRule ^verzeichnisrubrik/detail_([0-9]+)\.html$ /verzeichnisrubrik/detail.php?nr=$1 [L]
RewriteRule ^anderesverzeichnis/detail_([0-9]+)\.html$ /anderesverzeichnis/detail.php?nr=$1 [L]


Den Rest kannst du nicht vereinfachen, es sei denn, es gibt für alle Scripte z.B. eine Klasse oder Funktion, die die Links zusammenbaut. Dann muss praktischerweise nur dort eine Änderung vorgenommen werden. Jedoch wird von einer solchen Klasse/Funktion wohl nur selten gebrauch gemacht. Somit ist das spätere Ändern der URL dann mit ein wenig Suchen und Ersetzen in verschiedenen Dateien verbunden.

Grüße
Robert
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon Dani1978 » 17.12.2005 18:19

Vielen Dank.

Kann man durch .htaccess auch die Domain (ab)ändern.

http://dmian.de/content/conpresso/aktue ... hp?nr=4220
in
http://domain.de/content/aktuell/detail_4145.html
Dani1978
.
.
 
Beiträge: 8
Registriert: 17.12.2005 11:25

Beitragvon Bob » 17.12.2005 19:47

Also der logische Weg, den mod_rewrite durchführt, ist ja umgekehrt; sprich durch den User wird /content/aktuell/detail_4145.html aufgerufen, intern dann aber /content/conpresso/aktuell/detail.php?nr=4220 geladen.


Eine .htaccess im root, also /.htaccess hat geschrieben:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^content/aktuell/detail_([0-9]+)\.html /content/conpresso/aktuell/detail.php?nr=$1 [L]


In den Unterverzeichnissen /content/ undn /content/aktuell/ dürfen dann keine weiteren RewriteRules liegen, das führt zu Konflikten bzw. setzt die RewriteRules aus dem root außer Kraft.

Grüße
Robert
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon Dani1978 » 19.12.2005 12:54

Caterham hat geschrieben:In den Unterverzeichnissen /content/ undn /content/aktuell/ dürfen dann keine weiteren RewriteRules liegen, das führt zu Konflikten bzw. setzt die RewriteRules aus dem root außer Kraft.

Grüße
Robert


Wie entferne ich Rewrite-Rules aus den Unterverzeichnissen. Die hochgeladenen .htaccess kann ich mit meinem FTP-Tool nicht sehen. Soll ich einfach ne leere .htaccess-Datei ins Verzeichnis laden?

Gruss
Dani1978
.
.
 
Beiträge: 8
Registriert: 17.12.2005 11:25

Beitragvon Bob » 19.12.2005 13:36

Je nach FTP-Programm ist das unterschiedlich. Normal sollte sich irgendwo eine Eingabebox befinden, in der du commands eingeben kannst. Dort müsstest du
-a
eingeben. Dateien, die mit einem Punkt beginnen, sind unter Unix versteckte Dateien, welche über -a dann sichtbar gemacht werden können.

In einer etwas älteren Version von WS_FTP pro sieht das z.B. so aus:

Bild

Sonst kannst du natürlich auch eine leere .htaccess-Datei hochladen, sollte das sichtbarmachen der Dateien mit deinem FTP-Programm nicht funktionieren.

Grüße
Robert
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon Dani1978 » 19.12.2005 15:11

Caterham hat geschrieben:
Eine .htaccess im root, also /.htaccess hat geschrieben:
Code: Alles auswählen
RewriteEngine on
RewriteRule ^content/aktuell/detail_([0-9]+)\.html /content/conpresso/aktuell/detail.php?nr=$1 [L]




Mmh bitte beachten, dass "aktuell" nur eine Rubrik ist.

Irgednwie muss der order von folg. Domain http://domain.de/content/conpresso/"direkctory"/detail.php?nr=4145&kategorie=news

auf http://domain.de/content/4145.html leiten!
Dani1978
.
.
 
Beiträge: 8
Registriert: 17.12.2005 11:25

Beitragvon Bob » 27.12.2005 16:25

Aufruf von http//domain.de/content/4145.html --> intern nach http//domain.de/content/conpresso/ordner/detail.php?nr=4145&kategorie=news

D.h. du möchtest für jede Nummer (hier 4145) eine eigene RewriteRule erstellen? Anders wird das sonst nicht funktionieren können, da in deinem letzten Beispiel das Verzeichnis nicht mehr Bestandteil der URL ist. Was nicht da ist, kannst du auch nicht automatisch hinzufügen. Da bleibt nur die manuelle Notation in Form von

Code: Alles auswählen
RewriteRule ^content/4145\.html$ /content/conpresso/ordner/detail.php?nr=4145&kategorie=news [L]


solltest du den Ordner dann doch noch in der URL behalten, /content/ordner/4145.html --> /content/conpresso/ordner/detail.php?nr=4145&kategorie=news

Code: Alles auswählen
RewriteRule ^content/([^/]+)/detail_([0-9]+)\.html$ /content/conpresso/$1/detail.php?nr=$2&kategorie=news [L]


Die Kategorie news hast du jetzt an allen URLs hängen, da wiederrum keine unterscheidungsmöglichkeit gegeben ist, wann dann nun die Kat. News ist, und wann nicht. Das müsste folglich auch noch in die URL eingebaut werden, z.b. /content/ordner/news-4145.html
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10


Zurück zu URL-Design

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron