Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   php und Dateiendung html (ModRewrite) (https://www.delphipraxis.net/43074-php-und-dateiendung-html-modrewrite.html)

Matze 28. Mär 2005 18:27


php und Dateiendung html (ModRewrite)
 
Hi!

Meine Website besteht aus php-Dateien, da gibt es dann URLs wie



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:
RewriteEngine on
RewriteBase /

RewriteRule  (.*)\.html /index.php?get=$1&id=$2 [L]
Nur fange ich damit nicht wirklich was an. Kennst sich einer von euch in diesem gebiet aus?

Dax 28. Mär 2005 18:36

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. ;)

derpepe 28. Mär 2005 18:41

Re: php und Dateiendung html (ModRewrite)
 
Hab sowas für ein CMS gebaut:
http://cms.schneider-medien.de

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!!

Matze 28. Mär 2005 18:59

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. ;)

S2B 29. Mär 2005 00:04

Re: php und Dateiendung html (ModRewrite)
 
Code:
RewriteEngine On

RewriteRule ^programm/([0-9]*) index.php?get=programm&id=$1
Das wäre eine (einfachere) RewriteRule für die Sache mit den Programmen. :wink:

Matze 29. Mär 2005 01:00

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?

alcaeus 29. Mär 2005 06:50

Re: php und Dateiendung html (ModRewrite)
 
Hallo Matze,

dass das hier
Code:
RewriteRule  (.*)\.html /index.php?get=$1&id=$2
nicht funktioniert, ist fuer mich kein Wunder. Du bekommst eben nur einen "Parameter" zurueck, und nicht zwei. Versuch mal diese hier:
Code:
RewriteRule ^([[:lower:][:upper:]äöüÄÖÜß%+-]*)([0-9]+).html(.*) index.php?get=$1&id=$2$3
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
Code:
^program([0-9]+).html(.*)
Zitat:

Zitat von Matze
Muss ich noch etwas in den php-Dateien verändern?

Du musst nur dafuer sorgen, dass deine php-Dateien die neuen Links ausspucken, genau so wie in deinem Forum ;)

Greetz
alcaeus

S2B 29. Mär 2005 09:32

Re: php und Dateiendung html (ModRewrite)
 
Zitat:

Zitat von S2B
Code:
RewriteEngine On

RewriteRule ^programm/([0-9]*) index.php?get=programm&id=$1
Das wäre eine (einfachere) RewriteRule für die Sache mit den Programmen. :wink:

Also das geht auf jeden Fall, ich hab es doch getestet. :wink:

Matze 29. Mär 2005 10:56

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:
ob_start();

function replace_for_mod_rewrite(&$s)
{
$urlin =
array(
"'(?<!/)index.php'"
);

$urlout = array(
"index.html"
);

$s = preg_replace($urlin, $urlout, $s);
return $s;
}
und im Footer das hier:

Code:
$contents = ob_get_contents();
ob_end_clean();
echo replace_for_mod_rewrite($contents);
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? ;)

alcaeus 29. Mär 2005 11:19

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.
Seite 1 von 2  1 2      

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