2 Stimmen

.htaccess mit .php-Erweiterung fehlerhaft?

Ok, ich habe also diese mod_rewrite-Regel, die intern eine .html-Erweiterung anhängt, wenn sie beim Senden der Anfrage nicht angegeben wird:

Options +FollowSymLinks
RewriteEngine on
#
## Internally rewrite extensionless file requests to .html files ##
#
# If the requested URI does not contain a period in the final path-part
RewriteCond %{REQUEST\_URI} !(\\.\[^./\]+)$
# and if it does not exist as a directory
RewriteCond %{REQUEST\_FILENAME} !-d
# and if it does not exist as a file
RewriteCond %{REQUEST\_FILENAME} !-f
# then add .html to get the actual filename
RewriteRule (.\*) /$1.html \[L\]
#
#
## Externally redirect clients directly requesting .html page URIs to extensionless URIs
#
# If client request header contains html file extension
RewriteCond %{THE\_REQUEST} ^\[A-Z\]{3,9}\\ /(\[^.\]+\\.)+html\\ HTTP 
# externally redirect to extensionless URI
RewriteRule ^(.+)\\.html$ http://www.example.com/$1 \[R=301,L\]

Ich dachte daran, die Stelle, an der im ersten Teil dieser Datei .html steht, in .php zu ändern, so dass, wenn jemand eine .php-Datei anfordert, ohne die Erweiterung hinzuzufügen, er trotzdem auf diese .php-Seite gelangt. Es hat sich herausgestellt, dass das nicht funktioniert. Und warum nicht?

Mein Beweis hier: http://appstorecrazy.com/OHNOEZ/NOTEST

2voto

anubhava Punkte 713155

Versuchen Sie, die folgenden Regeln für den Umgang mit PHP zu befolgen:

## Internally rewrite extensionless file requests to .php files ##
# If the requested URI does not contain a period in the final path-part
RewriteCond %{REQUEST_URI} !(\.[^./]+)$
# and if it does not exist as a directory
RewriteCond %{REQUEST_FILENAME} !-d
# and if it does not exist as a file
RewriteCond %{REQUEST_FILENAME} !-f
# then add .html to get the actual filename
RewriteRule (.*) /$1.php [L]

## Externally redirect clients directly requesting .php page URIs to extensionless URIs
#
# If client request header contains html file extension
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^.]+)\.php
# externally redirect to extensionless URI
RewriteRule ^(.+)\.php$ /$1 [R=301,L]

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X