Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: RewriteRule корректная передача GET параметров
цитата
10/11/15 в 10:51
 S_Flash
.htaccess
Код:
DirectoryIndex /index.php?a=1


если при таком раскладе передать ещё один параметр на корень домена в виде
Код:
то в реальности 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 в чистом виде не свитится на сайте, но открыть его возможность есть. Надо будет запретить его прямой вызов.


Эта страница в полной версии