2016-11-03 6 views
0

Ich möchte URL-Groß-und Kleinschreibung, für die ich bereits CheckSpelling On und es funktioniert gut. Parallel wollte ich auch Erweiterung für das von URL entfernen ichURL Rewriting mit case-insensitivity

angewendet
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php [NC,L] 

Es funktionierte auch. Aber beides funktioniert nicht zusammen. Wenn ich beide in Htaccess behalte, beginnt es Fehler 300 zu geben ("Multiple Choices")

+0

Was nicht funktioniert? Kannst du das URI posten, das 300 Fehler verursachte? – starkeen

+0

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 –

Antwort

0

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,