![]() |
php und Dateiendung html (ModRewrite)
Hi!
Meine Website besteht aus php-Dateien, da gibt es dann URLs wie Beispiele: http://www.pri-dev.de/index.php?get=downloads ![]() ------------------------------ ![]() ![]() ------------------------------ ![]() Man sieht, es gibt die verschiedensten Paremeter. Nun möchte ich das für Suchmaschinen optimieren und per ModRewrite die URL in "suchmaschinenfreundliche" ändern. Beispiel: http://www.pri-dev.de/index/program/#1 oder sowas in der Art. Gefunden habe ich Codes, wie diesen
Code:
Nur fange ich damit nicht wirklich was an. Kennst sich einer von euch in diesem gebiet aus?
RewriteEngine on
RewriteBase / RewriteRule (.*)\.html /index.php?get=$1&id=$2 [L] |
Re: php und Dateiendung html (ModRewrite)
Das ist ein Config-Teil für einen Apache-Webserver. Frag mal deinen Hoster, ob dort ein Apache verwendet wird, und wenn ja, frag mal, ob sie sowas für dich einrichten können. ;)
|
Re: php und Dateiendung html (ModRewrite)
Hab sowas für ein CMS gebaut:
![]() Lad mal die Core runter und entpack die "install.data" (ist ein ZIP-Archiv). Darin gibts ne PCMS.ZIP, die enthält im Core-Verzeichnis ne htaccess.php, guck Dir die mal an!! |
Re: php und Dateiendung html (ModRewrite)
@Dax: Aber das müsste u.a. mittels .htraccess Dateien gehen
@derpepe: Danke, nur verstehe ich das nicht ganz, was es damit aufsich hat. Dazu braucht man doch sicher keine zig dateien. ;) |
Re: php und Dateiendung html (ModRewrite)
Code:
Das wäre eine (einfachere) RewriteRule für die Sache mit den Programmen. :wink:
RewriteEngine On
RewriteRule ^programm/([0-9]*) index.php?get=programm&id=$1 |
Re: php und Dateiendung html (ModRewrite)
Ich habe das versucht, aber so wird da nichts verändert (ja, ich habe "program" mit einem "m" geschrieben ;) )
Muss ich noch etwas in den php-Dateien verändern? |
Re: php und Dateiendung html (ModRewrite)
Hallo Matze,
dass das hier
Code:
nicht funktioniert, ist fuer mich kein Wunder. Du bekommst eben nur einen "Parameter" zurueck, und nicht zwei. Versuch mal diese hier:
RewriteRule (.*)\.html /index.php?get=$1&id=$2
Code:
Der erste Parameter kann Klein- und Grossbuchstaben sein, dann kann eine beliebig lange Zahl kommmen, und der dritte Parameter kann sonstwas sein, ich nenne es immer "Sicherheitsparameter". Das $3 sorgt dafuer, dass irgendwelche Dinge, die hinten noch dranhaengen (z.B. eine SID falls es die gibt), auch weitergegeben werden. Evtl. solltest du die rewriterules auch fuer die einzelnen Teile fix machen, also einrach
RewriteRule ^([[:lower:][:upper:]äöüÄÖÜß%+-]*)([0-9]+).html(.*) index.php?get=$1&id=$2$3
Code:
^program([0-9]+).html(.*)
Zitat:
Greetz alcaeus |
Re: php und Dateiendung html (ModRewrite)
Zitat:
|
Re: php und Dateiendung html (ModRewrite)
Ah, so geht das also, danke. :)
Das Umschreiben verstehe ich aber noch nicht ganz. Im Header habe ich nun das:
Code:
und im Footer das hier:
ob_start();
function replace_for_mod_rewrite(&$s) { $urlin = array( "'(?<!/)index.php'" ); $urlout = array( "index.html" ); $s = preg_replace($urlin, $urlout, $s); return $s; }
Code:
Also hab das mal so gefunden, nur fang ich damit auch nicht viel an. Dinge wie (?<!/) sagen mir auch überhaupt nichts. Könntet ihr mir da nochmals behilflich sein? ;)
$contents = ob_get_contents();
ob_end_clean(); echo replace_for_mod_rewrite($contents); |
Re: php und Dateiendung html (ModRewrite)
Na dann will ich mal erklaeren, nachdem die Dinge sowieso von mir sind:
Die Funktion erhaelt einen String (in unserem Fall den Seitenquelltext), und hat ein Array von URLs definiert, welche durch URLs aus dem zweiten Array ersetzt werden. Die Sache mit dem (?<!/) habe ich auch nur irgendwo gesehn, preg ist nicht meine Staerke. Evtl. hilft dir das php-Manual weiter. Den Sinn der ob_*-Funktionen muss ich dir hoffentlich nicht erklaeren. Greetz alcaeus |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz