2017-06-13 1 views
0

Aktuelle Url www.example.com/index.php Nach rewriterule zu entfernen .php wird www.example.com/index. Das einzige Problem ist www.example.com/index.php ist immer noch zugänglich. Wie man das los wird? Regel neu schreiben, um .php zu entfernen, die ich verwendet habe.Index.php noch zugänglich nach dem Ändern in Index in .htaccess

**RewriteRule ^index$ index.php [NC,L]** 
+2

was meinst du mit ‚noch erreichbar‘? Das Rewrite wird einen Benutzer nicht daran hindern, 'index.php' erfolgreich einzugeben, es wird nur 'index' _to_' index.php' (intern) umgeschrieben. – Jeff

+0

Dann sag mir bitte, wie ich den Benutzer blockiere, um auf index.php zuzugreifen. Wenn jemand www.example.com/index.php anstelle von www.example.com/index eingibt, sollte der Fehler 404 URL nicht gefunden werden. – adii

Antwort

0

Es ist umgekehrt: RewriteEngine wandelt die URL Benutzer in einer lokalen Datei bereitstellt, die (vereinfachte Version) zugegriffen werden kann.

Wenn der Benutzer "http://example.com/test" öffnet, wird er durch das Neuschreiben der Engine in "test.php" umgewandelt, indem eine Erweiterung hinzugefügt wird.

Ich nehme an, Sie wollen, dass der Benutzer nie „.php“ in Browser zu sehen, so ist hier eine Lösung:

RewriteEngine On 

# If is has php extension, 
# let browser redirect to non-php version 
RewriteRule ^(.*)\.php$ /$1 [L,END,R] 

# If the file does not exist, add php extension 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ $1.php [L,END] 
+0

Die angeforderte URL wurde auf diesem Server nicht gefunden. Wenn Sie die URL manuell eingegeben haben, überprüfen Sie bitte Ihre Rechtschreibung und versuchen Sie es erneut. Mit diesem Fehler nach. nach der Implementierung der obigen Regel. – adii

+0

Was genau ist der URL-Pfad, den Sie ausprobiert haben und was ist die PHP-Datei, die Sie laden möchten? – user3429660

+0

Danke Problem gelöst. – adii

Verwandte Themen