Autor |
Nachricht |
ZeroFlash
Threadersteller
Dabei seit: 11.02.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Mo 25.06.2007 22:38
Titel [mod rewrite] url suchmaschinenfreundlich umschreiben |
|
|
also ich befass mich jetzt schon seit ner gewissen zeit mit mod rewrite aber irgendwie funktioniert meine rewriterule einfach nicht
bzw ich bin zu blöd... ka
mal ein bissel code
index.php
Code: |
<html>
<a href="index.php?navi=home">home</a>
<a href="index.php?navi=leistungen">leistungen</a>
<?php
switch ($_REQUEST['navi']) {
case home:
include (sprintf('home.txt'));
break;
case leistungen:
include (sprintf('leistungen'));
break;
}
?>
</html>
|
und jetzt noch von der .htaccess
Code: |
Options +FollowSymLinks
RewriteEngine on
Rewriterule ^(.*)\.html$ /index.php?navi=$1 [L] |
ja aber da geht rein gar nix. möcht einfach nur, dass statt index.php?navi=home
zb home.html oder so in der art in der adressleiste steht und somit
die seite suchmaschinenfreundlicher wird.
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 25.06.2007 23:04
Titel
|
|
|
Du musst natürlich auch die Hyperlinks entsprechend ändern.
|
|
|
|
|
Anzeige
|
|
|
ZeroFlash
Threadersteller
Dabei seit: 11.02.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Di 26.06.2007 10:12
Titel
|
|
|
und wie sollen die dann aussehen?
hatte meine links schon mal zum test auf home.html umgeändert... aber im endeffekt ist dann nichts mehr passiert. wurde nix mehr included, weil die variable keinen wert mehr bekommen hat.
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
Verfasst Di 26.06.2007 10:31
Titel
|
|
|
Werf mal einen Blick auf den Thread.
|
|
|
|
|
rob
Dabei seit: 11.12.2003
Ort: ~/
Alter: 46
Geschlecht:
|
Verfasst Di 26.06.2007 12:44
Titel
|
|
|
Code: | switch ($_REQUEST['navi']) { |
Warum nutzt du denn hier $_REQUEST?
Es geht doch nur darum, daß der Parameter navi per URL übergeben werden soll.
Dann setze $_GET ein.
Bei einem POST-Request soll das doch gar nicht funktionieren...
Aus Sicherheitsgründen solltest du nicht mehr Optionen bieten als nötig.
Und was ist jetzt, wenn jemand deine Site mit index.php?navi=gibtEsNicht anfordert?
Für diesen Fall würde ich dem Switch-Block einen default-Case mitgeben.
Und was soll das sprintf dort? Das bringt da doch rein gar nichts. Einen Formatierungsstring setzt du auch nicht ein...
Die eine Datei, die du einbindest, heißt "home.txt" und die andere heißt einfach nur "leistungen"? Keine Dateiendung?
Ich weiß ja jetzt nicht, was in den Dateien drin steht, aber falls dort PHP-Code enthalten sein sollte, mußt du unbedingt die Dateiendung .php vergeben!
Wenn ich so eine Datei nämlich direkt anfordere und die hat keine php-Dateiendung, dann wird sie logischerweise nicht von PHP geparst und ich kann den Code sehen.
Das offenbart mir dann möglicherweise Dinge, die ich gar nicht sehen sollte. Vielleicht sind Paßwörter oder Datenbank-Zugangsdaten dort enthalten. Vielleicht entdecke ich durch Einsicht des PHP-Codes aber auch ein paar Angriffsmöglichkeiten auf den Server.
Einige Leute vergeben für ihre einzubindenen Dateien immer die Endung .inc - das ist genauso schlecht!
.inc.php wäre viel sinnvoller und sicherer.
Ich würde das also folgendermaßen machen:
Code: | <?php
switch ( $_GET['navi'] )
{
case home:
include( 'home.inc.php' );
break;
case leistungen:
include( 'leistungen.inc.php' );
break;
default:
include( 'standard.inc.php' )
break;
}
?> |
Naja und zum Umgang mit dem rewrite-Modul hat m ja bereits einen Link gepostet.
Es gibt hier im Board allerdings auch noch weitere Threads zum Thema.
Die boardeigene Suche hilft.
Zuletzt bearbeitet von rob am Di 26.06.2007 12:45, insgesamt 1-mal bearbeitet
|
|
|
|
|
ZeroFlash
Threadersteller
Dabei seit: 11.02.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Di 26.06.2007 18:14
Titel
|
|
|
hab ich auch nur schnell fürs forum zusammen geschrieben. klar gibts n default bzw ne schleife die abfragt ob navinicht gesetzt ist.
ich nehm da txt weil nur html zeug enthalten ist. nix wichtiges... das is dann noch mal extra in ner php
ging nur ums prinzip
ja und warum ich request nehm hat folgenden grund. war bis vor n paar tagen bei nem anderen hoster und da ging meine schleife mit get bzw post nicht sondern nur mit request. war also nur ne notlösung.
danke aber schon mal.
|
|
|
|
|
ZeroFlash
Threadersteller
Dabei seit: 11.02.2005
Ort: -
Alter: 41
Geschlecht:
|
Verfasst Di 26.06.2007 19:33
Titel
|
|
|
so hab noch mal probiert und gemacht. also an sich wars bis auf das $_REQUEST richtig... hatte ja schon mal mit home.html getestet. nur bleibt bei $_POST die navi variable leer.
wieso geht das nur mit $_GET?
|
|
|
|
|
m
Moderator
Dabei seit: 18.11.2004
Ort: -
Alter: -
Geschlecht:
|
|
|
|
|
|
|
|
Ähnliche Themen |
Ist so eine Eingangsseite suchmaschinenfreundlich?
URL / Mod Rewrite
Mod Rewrite und SEO
AS1 in AS2 umschreiben
Mod Rewrite im Unterordner
[REGEX/REWRITE] + und &
|
|