Могу ли я по-прежнему использовать PHP GET переменную с mod_rewrite - PullRequest
0 голосов
/ 23 января 2012

У меня есть страница, которая принимает переменную GET, q из URL-адреса, используя следующий код:

<?php ob_start(); session_start();
$q=trim($_GET['q']);  // this is for security purposes
if (!is_numeric($q)){
header("HTTP/1.0 404 Not Found");
}
?>

Текущий URL-адрес выглядит как localhost/s/index.php?q=345.Я скоро напишу файл .htaccess, в котором URL будет выглядеть как localhost / 345.Мне было интересно, смогу ли я взять переменную GET (q), используя приведенный выше код.Я согласен, что он не будет работать, потому что URL не будет иметь типичного GET внешнего вида.В новом URL переменная «GET» будет выглядеть как папка.

Ответы [ 2 ]

1 голос
/ 23 января 2012

Если ваша строка подстановки RewriteRule не содержит вступления ?, тогда строка запроса остается без изменений. Если это так, и вы также указываете флаг [qsa], то существующая строка запроса будет добавлена ​​к новой в строке замещения.

1 голос
/ 23 января 2012

Да, когда вы используете mod-rewrite, он «перезаписывается» в другой формат.Затем ваш htaccess укажет, как интерпретировать новый формат, так что ваши значения будут там, от вас зависит форматирование вашего htaccess, чтобы они получали переменные.

...