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?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top