Saubere URL
Hallo zusammen, ich verwende in einer kleinen Webseite folgenden Code um den Seiteninhalt hinzuzufügen
Damit die URL besser lesbar für die Suma ist, verwende ich eine .htaccess mit dem Inhalt:
Das funktioniert soweit recht gut ausser das auf der Startseite kein inhalt gefunden wird, also wenn die GET leer ist ...
Kann mir da jemand weiterhelfen?
<?php
// if the GET var isn't set, we default the file name to the home file
if(!isset($_GET['page'])) {
$file = 'home.php';
// otherwise, we set the filename to the GET var value
} else {
$file = $_GET['page'] . '.php';
}
// Here we set the absolute path to the file so we can check if it exists
$filepath = dirname(__FILE__) . '/content/' . $file;
// if the file doesn't exist, echo an error message
if(!file_exists($filepath)) {
include("content/error.php");
// otherwise, include the file & we're done!
} else {
include($filepath);
}
?>
Damit die URL besser lesbar für die Suma ist, verwende ich eine .htaccess mit dem Inhalt:
RewriteEngine on
RewriteBase /www
RewriteCond %{REQUEST_URI} !^/+(admin|images)/?
RewriteCond %{REQUEST_URI} !(\..{2,4})$
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ index.php?page=$1&%1 [L]
Das funktioniert soweit recht gut ausser das auf der Startseite kein inhalt gefunden wird, also wenn die GET leer ist ...
Kann mir da jemand weiterhelfen?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 299291
Url: https://administrator.de/contentid/299291
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
4 Kommentare
Neuester Kommentar
Hello pcguy!
Durch deine RewriteRule existiert GET-page immer.
Der einzige Unterschied der bleibt ist ob "page" gefüllt ist oder nicht.
~Arano
Durch deine RewriteRule existiert GET-page immer.
Der einzige Unterschied der bleibt ist ob "page" gefüllt ist oder nicht.
<?php
if( isset() && !empty() )
$file = $_GET['page'].'.php'; // verwende NIEMALS Usereingaben ohne sie validiert und entschärft zu haben !
else
$file ='home.php';
?>
~Arano
Hi,
das ist abhängig von deiner Formulierung der Programmlogik, vieles lässt sich auf zwei Wege erreichen.
Am Ende funktioniert beide, jedoch habe ich eine mit negativer Prüfung und eines mit positiver.
In deinem Fall möchten wir aber
Also:
Eine Variable die nicht existiert kann keinen Inhalt haben !
Bei dir ist es also ein
~Arano
das ist abhängig von deiner Formulierung der Programmlogik, vieles lässt sich auf zwei Wege erreichen.
if( $username=="Arano" ) echo "Hallo Arano"; else echo "Hallo Unbekannter";
if( $username!="Arano" ) echo "Hallo Unbekannter"; else echo "Hallo Arano";
In deinem Fall möchten wir aber
empty()
verwenden und es nur logisch bevor wir eine Variable auf ihren Inhalt prüfen, zu prüfen ob diese überhaupt existiert !Also:
isset()&&!empty()
Eine Variable die nicht existiert kann keinen Inhalt haben !
!isset() && empty()
macht also keinen Sinn bzw. wenn die Variable nicht existiert brauchen wir deren Inhalt nicht überprüfen, das ist also schlicht überflüssig und unlogisch.Bei dir ist es also ein
else
$file = 'home.php';
~Arano