2016-07-29 12 views
0

Es ist etwas, was ich bin fehlt hier: Remove .php extension with .htaccess.htaccess redirect www zu nicht-www setzt noch Endung .php in uri

Mein Ziel:

alles Umleiten von www nicht www

Aktuelle Code in .htaccess

RewriteEngine on 
Options -Indexes 
RewriteBase/

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://%1/$1 [L,R=301] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ /$1.php [L] 

Aktuelles Verhalten:

Leitet alles von www zu nicht-www fügt aber hinzu, die PHP-Datei-Endung ".php" in URIs (die PHP-Dateien zu tun gibt)

ZB:

www.example.com/hello

Umleitungen an

example.com/hello.php

Was soll ich tun, um die PHP-Erweiterung in der URI zu vermeiden?

+0

Ändern Sie diese 'RewriteRule^(. *) $ /$1.php [L] 'zu diesem' RewriteRule^(. *) $/$ 1 [L] ' –

+0

Passiert das immer? Was ist, wenn du 'example.com/hallo' machst? – apokryfos

+0

Mögliches Duplikat von [Erweiterung von .php mit .htaccess entfernen] (http://stackoverflow.com/questions/4026021/remove-php-extension-with-htaccess) – riya

Antwort

0

Ich bin nicht wirklich sicher warum, es funktioniert mit dem folgenden Code.

Die Beratung von @ Panama-Buchse ist ein starkes: 302 während auf .htaccess Regeln arbeiten, ist in der Tat der Weg zu gehen, bevor alles Einstellung 301.

RewriteEngine on 
Options -Indexes 
Options -Multiviews 
RewriteBase/

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC] 
RewriteRule ^(.*)$ http://iPutMyWholeUrlHere.com/$1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ /$1.php [L]