Seite 1 von 1

URL-Design mit mod_rewrite

Verfasst: 03.02.2007, 16:20
von Hurz
Ich baue gerade mit etomite ne neue Seite.

Jetzt möchte ich meine URLs gerne SUMA-tauglicher machen und habe mich dem mod_rewrite zugewendet, woraus ich nicht schlau wurde.

Ich will folgendes erreichen:

von

/index.php?id=58

zu

/Keyword1/impressum.html

Hab schon vieles ausprobiert tappe aber immernoch völlig im Dunklen. Vielleicht könnt ihr mir ja helfen.

_____________________________________________
EDIT:

Folgendes steht bereits in der .htaccess

Code: Alles auswählen

# URL rewriting for Etomite CMS
# Last Modified: 2006-03-30 by Ralph Dahlgren
#
# To use friendly URLs for Etomite you need to uncomment the three Rewrite directives
# Make sure RewriteBase points to the directory where you installed Etomite
# e.g. / if your installation is in root
# or /Etomite if your installation is in the Etomite subdirectory
#
# You must be running on Apache with mod_rewrite to be able to use this functionality.
#
# Remember, you must rename this file to .htaccess instead of the default ht.access
#
RewriteEngine On
#
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
_____________________________________________
EDIT2:

In obiger .htaccess ist friendly URL eingeschaltet. (Seite wird als /59.html angezeigt)

Ich habe nun sowohl versucht obigen Code umzuschreiben, als auch friendly URL auszustellen und selbst einen Code einzugeben.

Es blieb bei einem Versuch. :-?

Man kann doch einzelne Unterseiten umschreiben, oder? Oder muss da eine Regel angewendet werden, die für alle Unterseiten gilt? Ich blick grad nicht mehr durch.

Verfasst:
von

Hochwertiger Linkaufbau bei ABAKUS:
  • Google-konformer Linkaufbau
  • nachhaltiges Ranking
  • Linkbuilding Angebote zu fairen Preisen
  • internationale Backlinks
Wir bieten Beratung und Umsetzung.
Jetzt anfragen: 0511 / 300325-0

Verfasst: 03.02.2007, 18:11
von RW

Verfasst: 07.02.2007, 16:13
von Hurz
Warum funktioniert folgender Code nicht? Hab das jetzt schon mehrfach auf Webseiten gelesen:

Code: Alles auswählen


RewriteEngine on
RewriteRule ^/index\.php?id=59$ /impressum.html
Wäre lieb wenn ihr mir helfen könntet! Will mich jetzt endlich anderen Themen widmen, gibt wichtigeres zu machen als das dumme URL-Design!

Verfasst:
von
Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Verfasst: 07.02.2007, 16:20
von msslovi0
Ich vermute mal, du willst, dass beim Aufruf von impressum.html index.php?id=59 aufgerufen wird und nicht andersrum.

Code: Alles auswählen

RewriteEngine on 
RewriteRule ^impressum.html$ /index.php?id=59 
Matt

Verfasst: 07.02.2007, 16:23
von Hurz
Hi Matt

Nein nein ich möchte, dass impressum.html angezegt wird statt /index.php?id=59

Aber es tut sich nix. Normalerweise müsste das doch so klappen, oder?

Verfasst: 07.02.2007, 16:26
von msslovi0
Genau das macht mein Code. Du rufst https://www.domain.de/impressum.html auf, das steht auch so im Browser, ausgeliefert wird aber https://www.domain.de/index.php?id=59.

Matt

Verfasst: 07.02.2007, 16:30
von Hurz
Hmm es klappt aber nicht.

Ich habe gerade ausprobiert auf impressum.html direkt zu gehen das funktioniert.

Also muss es am etomite-Menue liegen, dass man auf der index.php?id=59 bleibt und nicht weiter geleitet wird.

Verfasst: 07.02.2007, 16:40
von msslovi0
Dann hab ich dich wohl doch flashc verstanden. Oder wir reden gekonnt aneinander vorbei :D

Code: Alles auswählen

RewriteEngine On

RewriteCond %{QUERY_STRING} id=59
RewriteRule (.*) impressum.html [L]
Eigentlich sollte ein CMS aber eine solche Funktion haben, dass es anstatt irgendwas aus der Datenbank zusammenzukramen eine beliebige Seite ausgibt oder zumindest dorthin weiterleitet.

Verfasst: 07.02.2007, 16:51
von Hurz
Hmmm wäre zu schön gewesen wenn der Code funktioniert hätte :D

Kommt aber leider das:
Not Found

The requested URL /impressum.html was not found on this server.
Apache/2.2.3 Server at www.domain.de Port 80

Verfasst: 07.02.2007, 17:29
von Hurz
Nur wenn der .htaccess code so aussieht kann ich auch impressum.html direkt aufrufen.

Code: Alles auswählen

RewriteRule ^impressum.html$ /index.php?id=59
so kann ich /impressum.html nicht direkt aufrufen.

Code: Alles auswählen

RewriteRule ^index.php?id=59$ /impressum.html
Mit dem Code den du ober gepostet hast könnte ich ja nur ne Umleitung auf ne reell existierende URL durchführen so wie ich das sehe.

Verfasst: 07.02.2007, 18:43
von msslovi0
Ich bin jetzt total verwirrt. Mir ist gerade absolut nicht klar, was du erreichen willst.

https://www.domain.de/index.php?id=59 aufrufen und https://www.domain.de/impressum.html wird gezeigt oder
https://www.domain.de/impressum.html aufrufen und https://www.domain.de/index.php?id=59

Das liest sich, als wenn /impressum.html physikalisch existiert:
Ich habe gerade ausprobiert auf impressum.html direkt zu gehen das funktioniert.
Und das, als wenn sie nicht exisitiert.
The requested URL /impressum.html was not found on this server.
Und zum Thema real existierende URL: Irgendwo muss der Content ja real existieren. Was nicht da ist kann auch nicht angezeigt werden. Es wäre nur wichtig zu wissen, welche die reale URL ist und welche im Browser erscheinen soll. Eine Umleitung ist mein Code aber nicht. Dann würde ein [R=301] hinten dranstehen.

Verfasst: 07.02.2007, 20:08
von Hurz
Ja, genau. impressum.html existiert nicht.
msslovi0 hat geschrieben: https://www.domain.de/index.php?id=59 aufrufen und https://www.domain.de/impressum.html wird gezeigt
Jap, das will ich erreichen.

/index.php?id=59 existiert real.
msslovi0 hat geschrieben: Das liest sich, als wenn /impressum.html physikalisch existiert:
Ich habe gerade ausprobiert auf impressum.html direkt zu gehen das funktioniert.
Nein, ich habe diesen Mod_rewite Code eingefügt:
RewriteRule ^impressum.html$ /index.php?id=59
Dann kann ich wie oben beschrieben direkt auf /impressum.html gehen und es gibt keinen Fehler. Man wird aber nicht darauf weitergeleitet wenn man aufs Menue klickt. Da bleibt man bei index.php....
Is ja auch klar weil der Code funzt ja anders run :Fade-color

Beim normalerweise richtigen Code kann ich aber nicht direkt auf impressum.html gehen und man wird auch nicht von /index.php... auf impressum.html weitergeleitet,

Alle Klarheiten beseitigt? :P

Verfasst: 07.02.2007, 23:13
von msslovi0
Spontan würde ich sagen: Das geht mit mod_rewrite nicht.

Verfasst: 08.02.2007, 00:02
von chris21
Das Problem liegt nicht in der .htaccess zu finden, sondern im restlichen Code Deines CMS.

Wenn Du über Nutzung von modrewrite schöne URLs wie impressum.html haben willst (die dann intern auf index.php?id=59 verweist), muss das CMS natürlich auf impressum.html linken, nicht auf index.php. Demnach musst Du auf dieser Seite ansetzen.

Ich arbeite leider nicht mit Etomite, kenne mich mit diesen CMS daher nicht so aus, aber ich denke, dass Du irgendwo im Backend/Templatesystem "impressum" als Alias für [~58~] setzen musst, damit es geht. Dann müsste es gehen. Diese Info habe ich mir gerade aus dem Thread https://www.etomite.com/forums/index.ph ... =548&st=45 gesogen. Eine bessere Beschreibung, und was ich genau damit meine, findest Du wohl unter https://docs.etomite.com/installation-furls.html.

Wenn die Seite allerdings bisher ohne friendly urls gespidert wurde, muss man zugleich überlegen, wie man auch die Bots, die alten Links folgen, auf die neuen schönen urls umleitet. Ich weiß leider nicht, ob Etomite sich da automatisch drum kümmert.