Проблема со спецсимволами в htaccess rewriterule

govnoproger.ru > php > Проблема со спецсимволами в htaccess rewriterule

Проблема старая. Я заметил её ещё на денвере пару лет назад.
Тогда я просто отказался от использования спецсимволов типа «плюс» и тп.
Но вот сейчас столкнулся с тем, что альтернативы просто нету.

Для тех кто в танке, вот проблема:

rewriterule (.*)$ index.php?fname=$1

В примере мы переписываем всё на скрипт.
После чего выводим нашу гет переменную:

echo $_GET['fname'];


Если в имени URL будет спецсимвол символ типа плюса и тп, то выведется пробел вместо него.

Решение проблемы:
Продолжайте использовать rewriterule, чтобы получить все символы нужно брать не через
$_GET[‘fname’] , а через $_SERVER[‘QUERY_STRING’]

Пример:

echo $_SERVER['QUERY_STRING'];
echo "</br>";
echo basename($_SERVER['QUERY_STRING']);

В общем вот.

Рекомендую:

4.10.2011 | последняя редакция: 21.10.2011 |