Master-X
Регистрация
|
Вход
Форум
|
Новости
|
Статьи
Главная
»
Форум
»
Программинг, Скрипты, Софт, Сервисы
»
Тема:
RewriteRule корректная передача GET параметров
Новая тема
Ответить
цитата
10/11/15 в 10:51
S_Flash
.htaccess
Код:
DirectoryIndex /index.php?a=1
если при таком раскладе передать ещё один параметр на корень домена в виде
Код:
http://domain.com/?b=2
то в реальности QUERY_STRING получается в данном случае таким:
a=1?b=2
, вместо
a=1&b=2
Как можно это настроить корректно?
цитата
10/11/15 в 12:11
freeek
это можно сделать корректно изначально поняв что нужно
Код:
RewriteRule ^test.php$ test.php?a=1 [NC,L,QSA]
Код:
//test.php
<?php
echo '<pre>', print_r($_GET, true), '</pre>';
echo '<pre>', print_r($_SERVER['QUERY_STRING'], true), '</pre>';
Код:
/test.php?b=56
Код:
Array
(
[a] => 1
[b] => 56
)
a=1&b=56
цитата
10/11/15 в 22:52
S_Flash
freeek:
проблем именно в том, к DirectoryIndex /index.php?a=1
я бы изначально добавил к строке QSA и не тормошил бы форум, если бы эта строка относилась к реврайтам. Но это не так. А параметр надо и к корню домена тоже:
http://domain.com/?b=1
Пока сделал так:
Код:
DirectoryIndex /index.php?a=1
RewriteEngine On
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^$ /index.php?a=1 [L,QSA]
ХЗ, нассколько это универсально и корректно, но пока не дало сбоя.
цитата
11/11/15 в 10:25
freeek
по сути тоже самое, как раз таки это к реврайтам и относиться.
индекс это индекс, а если мы меняем строку запроса и т.д., то уже реврайт.
в твоем случаем отрабатывает реврайт.
а если запросят /index.php ? корректно отработает?
цитата
11/11/15 в 11:58
S_Flash
freeek:
/index.php в чистом виде не свитится на сайте, но открыть его возможность есть. Надо будет запретить его прямой вызов.
Новая тема
Ответить
Эта страница в полной версии