2017-10-16 36 views
1

Ich möchte .php Erweiterung von meinen URLs entfernen. Das Problem ist, dass einige meiner Ordner den gleichen Namen mit einigen meiner Seiten teilen. Zum Beispiel habe ich einen Ordner namens "materiel" und eine Seite namens "materiel.php". Ich fand die Lösung mit diesem Code:URL umschreiben funktioniert offline, aber nicht online

Options -MultiViews 

RewriteEngine On 

# Manually re-route materiel/ requests to materiel 
RewriteCond %{REQUEST_FILENAME} materiel/$ 
RewriteRule ^(.*)/$ $1 

# Hide extension 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Es funktioniert auf meiner lokalen Version der Website, aber nicht online (es führt zu einer Fehlerseite). Ich habe bereits versucht, Optionen-MultiViews und DirectorySlash Off in meinem Code ohne Erfolg hinzuzufügen. Mein Gastgeber ist 1 & 1. Vielleicht hat jemand schon so ein Problem erlebt?

Vielen Dank im Voraus für jede Antwort.

+2

Ist mod_rewrite auf Ihrem Server aktiviert? – Pauloscorps

+0

Was sagt die Fehlerseite? – kerbholz

+0

Ich denke, dass mod_rewrite aktiviert ist, da das Umschreiben für alle Seiten funktioniert, die nicht den gleichen Namen mit einem Ordner teilen. Die Fehlerseite ist nur die 404.php, die ich erstellt habe. – ekno

Antwort

0
Options -MultiViews 

RewriteEngine On 
RewriteBase/

# Manually re-route materiel/ requests to materiel 
RewriteCond %{REQUEST_FILENAME} materiel/$ 
RewriteRule ^(.*)/$ $1 

# Hide extension 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

Versuchen Sie, RewriteBase auf Ihr Basisverzeichnis zu setzen.

+0

Danke, dass du mir gezeigt hast, woran du arbeiten sollst. Da ich einen Ordner in meinem Server-Root erstellt habe, musste ich RewriteBase // schreiben. Jetzt funktioniert alles gut! – ekno

0

auszuschließen Verzeichnisse von neu geschrieben werden Sie

RewriteCond %{REQUEST_FILENAME} !-d 

als eine Ihrer Rewrite Bedingungen hinzufügen.

Verwandte Themen