ich die Kohana Rahmen bin mit (aber ich denke, es ist für diese Frage irrelevant ist) und Seiten können wie soEntfernen index.php von Website-URLs
http://www.example.com/articles/
http://www.example.com/index.php/articles/
Jetzt zugegriffen werden, als Faustregel, ich in der Regel Probieren und optimieren Sie meine .htaccess, um nur einen Weg für eine Seite hereinzulassen, und leiten Sie andere gebräuchliche Weisen leise um.
Im Wesentlichen in der ersten URL oben ist die Adresse tatsächlich intern zum zweiten Beispiel umgeleitet.
Was ich tun möchte, ist, URLs des zweiten Typs in URLs des ersten Typs zu verwandeln. Ich bin nicht oft zuversichtlich in .htaccess, und mein erster Versuch wird einige unerwartete Ergebnisse (wie Endlosschleifen gelegentlich) zu werfen
Hier ist, was ich mit
kam habeRewriteRule ^index\.php/(.*) $1 [NC,L,R=301]
Kann mir jemand sagen, was mache ich falsch, und wenn Sie auch auf dieses Problem gestoßen sind, wie haben Sie es gelöst?
EDIT
Ich habe beschlossen, meine ganze .htaccess zu veröffentlichen, damit alle meine Umleitungen untersucht werden kann.
# Turn on URL rewriting
RewriteEngine On
# Installation directory
RewriteBase /~toberua/
# file not found page
ErrorDocument 404 /404/
ErrorDocument 403 /403/
# get people out of my directories
Options -Indexes
# default page to load
DirectoryIndex index.php
# add trailing slash if missing
RewriteRule ^(([a-z0-9\-]+/)*[a-z0-9\-]+)$ $1/ [NC,R=301,L]
# redirect /favicon.ico requests
RewriteCond %{REQUEST_URI} !^/images/layout/favicon\.ico [NC]
RewriteCond %{REQUEST_URI} favicon\.(gif|ico|png|jpe?g) [NC]
RewriteRule (.*) images/layout/favicon.ico [R=301,L]
# send /home back to TLD
RewriteRule home/ $1 [NC,R=301,L]
# ensure there is no /index.php in the address bar
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.php\ HTTP/
RewriteRule ^(.*)index\.php$ $1 [R=301,L] # this was my attempt to stop /dir/index.php and make it simply /dir/
RewriteRule ^index\.php/(.*) $1 [NS,NC,L,R=301]
# Protect application and system files from being viewed
RewriteRule ^(application|modules|system) - [F,L]
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT,L]
Was macht NS Chaos? – alex
Als Antwort auf Sie bearbeiten: Denken Sie, ich muss einen RewriteCond einrichten? Ich habe versucht, diese Flagge hinzuzufügen, und es ist immer noch Looping. Irgendwelche Vorschläge? +1 für deine Probleme :) – alex
Ich glaube nicht, dass ein RewriteCond notwendig oder hilfreich ist, nein. Ich kann nicht sehen, warum die fortgesetzten Schleifen passieren, ohne die Regeln zu sehen, die Sie verwenden, um/articles/to /index.php/articles neu zu schreiben. – chaos