htaccess Hilfe Entfernen einer Zeichenfolge aus der URL
-
29-09-2019 - |
Frage
Ich frage mich, ist es möglich, von einer URL zu entfernen, index.php? Im Grunde genommen auf einigen Seiten in einer Seite, die ich diese Struktur habe,
http://www.domain.com/index.php/members/register , aber auch andere Seiten ich habe URL Strukturen wie diese, http: //www.domain .com / Kategorie / products / id / 5 , möchte ich wissen, ist es möglich, mit .htaccess index.php und alle zugeschrieben Schrägstriche zu entfernen, wenn nötig? Wie würde ich mich über das Tun dies?
Lösung
Ja, Sie können. Mit dieser Regel wird jede angeforderte /index.php
entfernt:
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.php[/?\ ]
RewriteRule ^index\.php(/(.*))?$ /$2 [L,R=301]
Sie sollten aber besser die richtigen URLs von Anfang an verwenden, so dass Sie Anwendung Dokumente, deren Links dienen enthält nicht die /index.php
.
Andere Tipps
Wenn Sie wollen global Rewrite index.php / controller / action
Diese .htaccess Konfiguration sollte es tun:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Diese Konfiguration prüft auf Apache, ob die Datei / Verzeichnis auf der Festplatte vorhanden ist oder nicht (dh die Anforderung eine echte Ressource auf der Festplatte übereinstimmen), und schreiben Sie die Anfrage auf Ihr Front-Controller , wenn nötig.
So http://www.domain.com/resources/image.png
sollte die Bildressource zurück.
Und http://www.domain.com/user/show/5
sollte transparent umschreiben zu http://www.domain.com/index.php/user/show/5
Mit dieser Konfiguration können Sie alle index.php Referenzen in Ihrer Anwendung URLs entfernen und verlassen auf den Webserver die neu zu schreiben.