CodeIgniter. Точка в строке запроса

Меня сильно удивила одна особенность php - все точки и пробелы в ключах массива $_GET интерпритатор заменяет на знаки подчеркивания(_). То есть, если вы передаете сроку вида index.html?test.html=a, вы получите $_GET['test_html'] = a.

Причем тут CI? Дело в том, что если передавать в контроллер параметр с точкой, вы не получите желаемого результата, потому что по умолчанию (в режиме $config['uri_protocol'] = "AUTO";) CI получает параметры из GET массива. Есть как минимум 2 решения этой проблемы:

Первое, и самое очевидное - изменить uri_protocol на REQUEST_URI.

Второе - обрабатывать входящую переменную, заменяя последний знак подчеркивания на точку.

Примечание.

В описанном примере роутинг делаеться с использованием mode rewrite. Используем .htaccess:

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

Интересное

Git и Bitbucket
Git – это распределенная система контроля версий. Пожалуй, на этом теория заканчивается, так как...
Отзыв о FirstVDS
При покупке хостинга у FirstVDS мне предложили скидку за годный отзыв в блоге или на форуме....
Project Glass — Очки будущего от Google
Компания Google представила суперсовременные «очки дополненной реальности» или Project Glass. Впрочем,...
Проверка сайта на вирусы
Если пользоваться привычной терминологией, то web вирусы не являются вирусами в традиционном...

Комментарии

    Чтобы оставлять комментарии, авторизируйтесь

    Войти через OpenID

    рейтинг0+-
    Популярные
    Точки входа
    Наверх