2016-05-05 2 views
0

Ich verwende diesen CodeKonnte Erweiterungen von .php nicht von meiner Website ausblenden, wie mache ich das?

# Apache Rewrite Rules 
<IfModule mod_rewrite.c> 
    Options +FollowSymLinks 
    RewriteEngine On 
    RewriteBase/

# Add trailing slash to url 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ 
    RewriteRule ^(.*)$ $1/ [R=301,L] 

# Remove .php-extension from url 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME}\.php -f 
    RewriteRule ^([^\.]+)/$ $1.php 

# End of Apache Rewrite Rules 
</IfModule> 

Es versteckt .php nicht Erweiterungen von meinen Seiten, wenn ich ‚.php‘ von meinem Anker-Tags zu entfernen, erhält die Seite umgeleitet. Für z. Wenn URL www.example.com/mysite/store.php ist und wenn ich '.php' von URI oder Anker href entferne, wird die neue URL www.example.com/store/, die natürlich nicht verfügbar ist. Ich habe versucht, url manuell als example.com/mysite/store einzugeben, aber es ist auch nicht verfügbar.

Offenbar .htaccess verwendet diese Regeln nicht, wenn ich dort Kauderwelsch schreibe, bekomme einen 500 Server Fehler, also funktioniert .htaccess gut, aber was falsch mache ich.

Beratung. Danke in Beratung!

aktualisieren

Okay, ich es herausgefunden habe, habe ich erfolgreich erreicht, was ich in Frage gestellt. Aber mein bootsrap ist komplett gebrochen, ich denke, weil es ist die Verknüpfung ‚bootstrap.css‘ als ‚bootstrap.css.php‘, weil die .htaccess-Datei, die ich jetzt bin mit ist:

# Turn on the rewrite engine 
RewriteEngine on 
# If the request doesn't end in .php (Case insensitive) continue processing rules 
RewriteCond %{REQUEST_URI} !\.php$ [NC] 
# If the request doesn't end in a slash continue processing the rules 
RewriteCond %{REQUEST_URI} [^/]$ 
# Rewrite the request with a .php extension. L means this is the 'Last' rule 
RewriteRule ^(.*)$ $1.php [L] 

DefaultType application/x-httpd-php 
DirectoryIndex index.php index.html 

Update 2

Entschuldigung, das war nicht das Problem, wie ich im letzten Update erwähnt habe, nachdem ich die Bootstrap-Links in meiner index.php entfernt habe, habe ich unterschiedliche Ergebnisse bekommen. Das Problem ist: localhost/example/index.php ist meine Homepage aber localhost/Beispiel ist was in URL angezeigt wird. localhost/example ist ein Verzeichnis mit Dateien darin. Bilder, die als geladen werden sollen, werden als localhost/example/index.php/image/logo.png geladen.

Antwort

1

prüfen bereits gebucht Antworten:

Remove .php extension with .htaccess

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !\.(?:css|js|jpe?g|gif|png)$ [NC] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=301,L] 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [NC,L] 
+0

Danke @Sid, ich habe dies offenbar zu arbeiten. Nur eine Sache, wenn ich auf den Link klicke, entfernt diese .htaccess nur die angehängte .php in URL, so dass die Seite nicht gefunden wird Fehler wird angezeigt. Irgendeine Idee, wie man das zur Arbeit bringt. Danke noch einmal. –

+0

Okay, ich habe es herausgefunden, ich habe erfolgreich erreicht, was ich gefragt habe. Aber mein bootsrap ist komplett kaputt, ich denke, da es 'bootstrap.css' als 'bootstrap.css.php' verlinkt, weil die .htaccess Datei, die ich jetzt benutze, ist: (Siehe Update in Frage) –

+0

Ich habe Bedingung hinzugefügt Ignoriere CSS, JS und Bilddateien ... hoffe das hilft – Sid

Verwandte Themen