Versuchen Sie Folgendes:
RewriteCond %{REQUEST_URI} ^/product/info/(.*)$
RewriteRule ^(.*)?$ /%2 [R=301,L]
, dass der Browser von www.example.com/product/info/laptop umleiten wird mit einem „Umzug nach www.example.com/laptop Permanent "Kopfzeile.
Wenn Sie meinen, Sie die kürzere URL wünschen intern auf die längere URL zu verweisen, müssen Sie Kreis Umleitungen vermeiden:
RewriteRule ^product/info/.*$ - [L] # don't redirect again
RewriteRule ^(.*)$ /product/info/$1 [L] # redirect everything else
Die erste Zeile www.example.com/product/ umleiten wird aufhören zu versuchen, Info/Laptop zu www.example.com/product/info/product/info/laptop und so weiter.
bearbeiten
Basierend auf Ihren Kommentar, es sieht aus wie Sie auch umleiten alles außer img, phpMyAdmin, etc, zu indizieren versuchen, was auch immer? - Sie haben es neu zu ordnen alles ein bisschen jetzt, etwas wie folgt aus:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(index\.php|img|phpmyadmin|images|user|wmd|FCKeditor|map|jscalendar|aurigma|xajax_js|css|js|include|floatbox|helper|styles|ajax|robots\.txt|favicon\.ico|product/info/(.*))
RewriteRule ^(.*)$ - [L] # don't redirect these
RewriteRule ^(.*)$ /product/info/$1 # redirect everything else
ich bin nicht 100% auf das "Produkt/Infos /(.*)" Teil des ersten Rewrite. Wenn das nicht funktioniert, versuchen Sie dies:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(index\.php|img|phpmyadmin|images|user|wmd|FCKeditor|map|jscalendar|aurigma|xajax_js|css|js|include|floatbox|helper|styles|ajax|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ - [L] # don't redirect these
RewriteRule ^product/info/.*$ - [L] # don't redirect again
RewriteRule ^(.*)$ /product/info/$1 [L] # redirect everything else
Edit 2
endgültige Antwort basierend auf Ihren Kommentar:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/(index\.php|img|phpmyadmin|images|user|wmd|FCKeditor|map|jscalendar|aurigma|xajax_js|css|js|include|floatbox|helper|styles|ajax|robots\.txt|favicon\.ico)
RewriteRule ^(.*)$ - [L] # don't redirect these
# pass controllers to index.php
RewriteCond %{REQUEST_URI} ^/(home|browse|calendar|star|member|enter|product)
RewriteRule ^(.*)$ /index.php?$1 [L]
# pass other things than controllers to /index.php?/product/info/$1
RewriteRule ^(.*)$ /index.php?/product/info/$1 [L] # redirect everything else
Warum die doppelten Anführungszeichen? der Ausdruck sollte [a-zA-Z0-9_ \ s \ '~%,:!?() \ ._ = & -] + –