Mod_rewrite zu Fuss....

Gesperrt
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Mod_rewrite zu Fuss....

Beitrag von McHubi »

Hallöchen,

ich weiß, dass es ein Plugin für das Thema gibt, möchte das Ganze aber "zu Fuss" erledigen. Bis hierhin hab ich's geschafft:

Eingegebene URL: http://www.meinedomain.de/test
Angezeigte URL: http://www.meinedomain.de/test
"eigentliche URL": http://www.meinedomain.de/cms/front_con ... p?idcat=39

In der .htaccess steht dazu folgendes:

Code: Alles auswählen

RewriteEngine on
Options +FollowSymLinks
RewriteBase /
RewriteRule ^test$ /cms/front_content.php?idcat=39

Hieran reiße ich mir allerdings langsam die Haare aus :( :

Eingegebene URL: http://www.meinedomain.de/cms/front_con ... p?idcat=39
Angezeigte URL: http://www.meinedomain.de/test
"eigentliche URL": http://www.meinedomain.de/cms/front_con ... p?idcat=39


Habe in den Weiten des Webs folgendes gefunden, bekomme es aber trotz Kaffee nicht hin es entsprechend anzupassen :oops:

Statt http://www.meinedomain.de/datei.php?a=1&b=2 soll http://www.meinedomain.de/datei/1/2/ angezeigt werden.

Code: Alles auswählen

RewriteCond %{REQUEST_URI} datei/(.*)/(.*)/$
RewriteRule ^datei/(.*)/(.*)/$ /datei.php?a=$1&b=$2
Hat einer von euche ne Idee oder bin ich vollkommen auf dem falschen Dampfer?

Schonmal Danke!
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
xmurrix
Beiträge: 3217
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Mod_rewrite zu Fuss....

Beitrag von xmurrix »

Hallo McHubi,

mit der Regel

Code: Alles auswählen

RewriteRule /([0-9]*)/$ front_content.php?idcat=$1 [QSA,L]
kannst du z. B. alle Requests die auf "/{irgend_eine_zahl}/" enden, an die front_content.php umschreiben. Dabei spielt es keine Rolle was vorne dran ist, /kategorie/artikel/123/ ist das gleiche wie /was_anderes/123/, da beide auf /123/ enden, und die Regel genau dies überprüft.

Dann wird /ordner/datei/123/ auf front_content.php?idcat=123 umschrieben.

Es gibt auch andere Möglichkeiten wie

Code: Alles auswählen

# /ordner/datei/a/123/ umschreiben auf front_content.php?idart=123
RewriteRule /a/([0-9]*)/$ front_content.php?idart=$1 [QSA,L]

# /ordner/datei/c/123/ umschreiben auf front_content.php?idcat=123
RewriteRule /c/([0-9]*)/$ front_content.php?idcat=$1 [QSA,L]
Da gibt es diverse Möglichkeiten, wichtig ist, dass die URL ein Muster hat , damit daraus per RewriteRule die Kategorieid oder Artikelid ermittelt werden kann.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Mod_rewrite zu Fuss....

Beitrag von McHubi »

Hallo xmurrix,

Danke für Deinen Post. Die Frage ist allerdings, ob bei Eingabe einer dynamischen URL eine statische angezeigt werden kann. Bei Eingabe einer statischen wird ja "im Hintergrund" die dynamische abgefragt und dargestellt, es bleibt jedoch die in der Adresszeile eingetipperte statische URL erhalten.

Mir scheint, mit mod_rewrite ist eine Änderung der Adresszeile nicht möglich... Also wenn ich eine dynamische URL eintippe, soll sie in der Adresszeile mit einer statischen ausgetauscht werden...

Grüße :)
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
xmurrix
Beiträge: 3217
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 19 Mal
Kontaktdaten:

Re: Mod_rewrite zu Fuss....

Beitrag von xmurrix »

McHubi hat geschrieben:...Die Frage ist allerdings, ob bei Eingabe einer dynamischen URL eine statische angezeigt werden kann. Bei Eingabe einer statischen wird ja "im Hintergrund" die dynamische abgefragt und dargestellt, es bleibt jedoch die in der Adresszeile eingetipperte statische URL erhalten.

Mir scheint, mit mod_rewrite ist eine Änderung der Adresszeile nicht möglich... Also wenn ich eine dynamische URL eintippe, soll sie in der Adresszeile mit einer statischen ausgetauscht werden...
Das sollte mit einem Redirect auch möglich sein

Code: Alles auswählen

RewriteRule /front_content.php?idart=([0-9]*)$ http://hostname/a/$1 [R=301,NC,L]
Getestet habe ich das jetzt nicht, aber so in der Art sollte es klappen. Das macht natürlich nur dann Sinn, wenn du nicht mit Kategorie-/Artikelaliasen arbeitest, das kriegst in der .htaccess nicht raus.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
McHubi
Beiträge: 1223
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Mettmann
Kontaktdaten:

Re: Mod_rewrite zu Fuss....

Beitrag von McHubi »

Hallo,

Bin wohl zu doof dafür :?

habe die .htaccess im root-Verzeichnis liegen und alles mögliche an Kombinationen durch und nix führt dazu, dass bei Eingabe in der Adresszeile oder durch "Eingabe" per Linkanklicken http://www.meinedomain.de/cms/front_con ... p?idcat=48 durch http://www.meinedomain.de/cms/test ersetzt wird.

Mal einige gescheiterte Varianten:

Code: Alles auswählen

RewriteRule /front_content.php?idcat=([0-9]*)$ http://hostname/a/$1 [R=301,NC,L]
RewriteRule /front_content.php?idcat=48$ http://hostname/a/$1 [R=301,NC,L]
RewriteRule /front_content.php?idcat=48$ http://www.meinedomain.de/a/$1 [R=301,NC,L]
RewriteRule /front_content.php?idcat=48$ http://www.meinedomain.de/cms/test [R=301,NC,L]
RewriteRule www.meinedomain.de/cms/front_content.php?idcat=48$ www.meinedomain.de/cms/test [R=301,NC,L]
RewriteRule www.meinedomain.de/cms/front_content.php?idcat=48$ http://www.meinedomain.de/cms/test [R=301,NC,L]
RewriteRule http://www.meinedomain.de/cms/front_content.php?idcat=48$ http://www.meinedomain.de/cms/test [R=301,NC,L]
... und so weiter und so fort ...

Dabei ist es wurscht, ob nach RewriteRule ein ^ eingefügt ist oder nicht, in der Adresszeile bleibt konsequent http://www.meinedomain.de/cms/front_con ... p?idcat=48 stehen.

Hab anscheinend eine etwas zu naive Vorstellung davon gehabt, dass man einfach in die .htaccess reinschreiben kann: "Wenn URL-a eingegeben oder per Link übergeben wird rufe sie ruhig auf aber ersetze in der Adresszeile die URL-a mit URL-b."

:?:

Grüße und bis denne...
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

Das Handbuch zur Version 4.10: CONTENIDO für Einsteiger (4.10)

Das Handbuch zur Version 4.9: CONTENIDO für Einsteiger (4.9)
Gesperrt