2013-11-13 8 views
1

Мне нужно перенаправить всегда в /. Например, если мой URL-адрес http://link.com/tag///////, он должен быть перенаправлен на http://link.com/tag////// (все косы должны быть удалены, а оставить только один). Как это сделать? Я использую CodeIgniter, мой .htaccess:HTACCESS перенаправляет всегда на/

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} !^www\. [NC] 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{REQUEST_URI} system|application 
RewriteRule ^(.*)$ index.php?/$1 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php/$1 [L] 

<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
    Header set Cache-Control "max-age=604800, public" 
</FilesMatch> 

ответ

0

Место это правило в верхней перед другими правилами:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)/{2,}[?\s] [NC] 
RewriteRule^/%1/ [L,R=301] 
+0

нет , «тег» был только примером, моя ссылка может быть «http://link.com/tag/antother_uri/the_other_segment////» или 'http://link.com/tag/the_other_segment//// /////////// ' –

+0

Теперь проверьте обновленный код. – anubhava

1

Попробуйте добавить это прямо под RewriteBase /:

RewriteCond %{THE_REQUEST} \ /+([^\ \?]+?)/{2,}([^\ \?]*) 
RewriteRule^/%1/%2 [L,R=301] 
+0

, который работает, но если мой url 'http: //link.com/uri1/uri2/uri3 ///////////////////////' я вижу ошибку что цикл перенаправления бесконечен –

Смежные вопросы