2014-02-19 2 views
1

У меня есть веб-сайт в codeigniter. Я новичок в определении правила в .htaccess. Я хочу, чтобы, если клиент набирает любой буквенно-цифровой символ в конце URL-адреса, эти символы должны быть удалены.Удалите любые завершающие буквенно-цифровые символы с URL-адреса

например: В http://studio.com/gallery/babies/12abc

12abc должны быть удалены.

Есть ли способ сделать это, установив правило в .htaccess для удаления любых завершающих буквенно-цифровых символов?

Я искал правило перезаписи для того же, но не нашел. Пожалуйста, предложите.

ответ

1

Если это только буквенно-цифровые вы хотите удалить ...

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(([^/]+/)*)([a-z0-9]+)$ $1 [NC,R=301,L] 

Два условия ! -f и ! -d обеспечивают перезапись только происходит, если URL не указывает на файл (или каталог), который на самом деле существует - это предотвращает URL-адрес, который вы на самом деле хотите переписать конкретный, существующий файл/каталог из-за перезаписывания, или вы застреваете в ужасном рекурсивном цикле, заставляя Apache выкидывать ошибку сервера.

Этот файл .htaccess должен быть в корневом каталоге вашего веб-сервера, если он находится в подкаталоге, вам необходимо добавить соответствующий RewriteBase.

Флаги:

NC = нет (не делает случай совпадения нечувствительным)

R = 301 = делает это перенаправление фактического HTTP 301 редирект, так что ваш он будет изменить URI (тем самым удаляя нежелательный трейлинг алфавитно-цифровой)

L = Последнее, что мы закончили обработку просто перенаправить без проверки остальной части RewriteRules

+0

Спасибо за немедленный ответ. Но его не удалять завершающие символы из URL-адреса – user44869

+0

Ах да, извините, это было обязательным косой чертой, которая может быть или не быть там ... updated – CD001

+0

Я получаю сообщение об ошибке «Страница не перенаправляется правильно». моя веб-страница не открывается – user44869

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