Frage von FazerFynn, 27

Wie kann ich mir RewriteRule umschreiben?

Hi, habe ein Problem, und zwar habe ich die URL sub.domain.com/?p=about und möchte, dass ich sie aber so eingeben kann, dass dann zur oben genannten URL weiterleitet: sub.domain.com/about

Meine bisherige .htaccess im Root Ordner der Subdomain:

RewriteEngine On
RewriteRule ^([^/]*)$ /?p=$1 [L]

Und hier die index.php ebenfalls im Root-Ordner:

$page = "home";

if (isset($_GET["p"])) {
    $page = $_GET["p"];
}

echo $page;

Ich bekomme einen "505 Internal Server Error":

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, service@webmailer.de and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Kann mir jemand helfen, wie ich das Problem löse?

Danke schonmal, Fynn

Antwort
von FazerFynn, 27

Habe die Lösung aus einer anderen Frage, aber eine Kleinigkeit verändert.
Für alle, die das selbe Problem haben:

http://pastebin.com/HTgRPEiX

Antwort
von Sawascwoolf, 19

Bitte lege dir einen Array an mit gültigen Werten für die Eingabe und überprüfe ob der $_GET["p"] darin enthalten ist.

ansonsten können Hacker über

?p=../.htaccess

bspw. Dateien auslesen die du mit Sicherheit nicht ausgeben willst.

Also so sollte der Code aussehen:

$pages = array("home","impressum","about");
if (isset ($_GET["p"]) && in_array($_GET["p"],$pages)) {
$page = $_GET["p"];
} else {
$page = "home";
}





Keine passende Antwort gefunden?

Fragen Sie die Community