Sie machen es sich schwer auf sich. Es wäre einfacher, wenn Sie Basic-Routing in Ihrem PHP ausführen. Senden Sie einfach alles zu Ihrem index.php
das kein Verzeichnis ist, und ist auch nicht eine Datei oder eine PHP-Datei:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{REQUEST_FILENAME} (?>.*)(?<=\.php) [NC]
RewriteRule ^(?!index\.php$). index.php [NS,L]
An der Spitze der index.php
, tun Sie etwas wie folgt aus:
<?php
$url = explode('?', $_SERVER['REQUEST_URI'], 2);
$url = substr($url[0], 1);
if ($url) {
$url = strtolower($url) . '.php';
if (preg_match('@^[^./][^/]*(?:/[^./][^/]*)*[email protected]', $url) && file_exists($url)) {
. # does not contain dotfiles, nor `..` directory traversal, so is a php file below web root
include $url;
}
else {
# virtual URL doesn't exist,
# set 404 response code header and serve a default page
include '404.php';
}
exit;
}
# no virtual URL, continue processing index.php
hinzufügen rel=canonical
zu jeder Seite <head>
, die die Kleinbuchstabe URL enthält (mit einer beliebigen Abfrage Zeichenfolge neu hinzugefügt), so dass Sie nicht für doppelte Inhalte bestraft werden,
Was nicht funktioniert? Kannst du das URI posten, das 300 Fehler verursachte? – starkeen
versucht, URL-Groß- und Kleinschreibung unempfindlich zu machen, URL folgt http://dev-sql.digiteck.com/dev/Login Es funktioniert, wenn es als http://dev-sql.digiteck.com/dev/Login.php verwendet wird oder http://dev-sql.digiteck.com/dev/login.php –