Heim >Backend-Entwicklung >PHP-Tutorial >Warum kann ich meine .php-Dateierweiterung nicht mit .htaccess verbergen?

Warum kann ich meine .php-Dateierweiterung nicht mit .htaccess verbergen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 18:08:02396Durchsuche

Why Can't I Hide My .php File Extension with .htaccess?

Verstecken der .php-Dateierweiterung mit .htaccess: Tipps zur Fehlerbehebung

Trotz der folgenden Anweisungen zum Verbergen der .php-Dateierweiterung mit .htaccess haben Sie stoßen auf Schwierigkeiten. Lassen Sie uns das Problem untersuchen und eine überarbeitete Lösung bereitstellen.

Ihr ursprünglicher .htaccess-Code hat versucht, URLs in einem bestimmten „Ordner“-Verzeichnis neu zu schreiben. Es erscheint jedoch unvollständig, da die entsprechende RewriteCond-Direktive fehlt. Um dieses Problem zu beheben, sollte der folgende geänderte Code funktionieren:

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^folder/([a-zA-Z_\-0-9]+)/?$ /folder/.php
</IfModule>

Die RewriteCond-Zeile stellt sicher, dass die Regel nur angewendet wird, wenn die angeforderte Datei nicht existiert (d. h. es ist keine statische Datei).

Um verschiedene Szenarien richtig zu bewältigen, sollten Sie darüber hinaus die Verwendung eines umfassenderen .htaccess-Codes in Betracht ziehen, wie er in der akzeptierten Antwort vorgeschlagen wird:

RewriteEngine On

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://example.com/folder/ [R=301,L]

# Redirect external .php requests to extensionless URL
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.com/folder/ [R=301,L]

# Resolve .php file for extensionless PHP URLs
RewriteRule ^([^/.]+)$ .php [L]

Dieser Code verbirgt nicht nur die Erweiterung .php, sondern auch verarbeitet abschließende Schrägstriche, externe .php-Anfragen und löst intern .php-Dateien für URLs ohne Erweiterung auf.

Denken Sie daran, sicherzustellen, dass die .htaccess-Datei im Stammverzeichnis Ihres Projekts abgelegt ist, und überprüfen Sie die Berechtigungen der Datei, um sicherzustellen, dass sie von gelesen werden kann Der Webserver.

Das obige ist der detaillierte Inhalt vonWarum kann ich meine .php-Dateierweiterung nicht mit .htaccess verbergen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn