Использование mod_rewrite для удаления определенных переменных GET - PullRequest
1 голос
/ 01 октября 2009

Я noob mod_rewrite, и у меня болит голова, пытаясь понять что-то, что должно быть простым. Я пытаюсь удалить нежелательные переменные из URL-адреса, отображаемого после использования формы GET. Другими словами, я пытаюсь изменить это:

stats.php?gender=W&team_id=88&btnGet=Get+Stats

к этому:

stats.php?team_id=88

Пожалуйста, помогите мне!

РЕДАКТИРОВАТЬ: все, что мне нужно было сделать, это удалить атрибуты "name" в моей форме на "пол" и кнопку отправки Спасибо слишком много php и Gumbo за решение! Конечно, был гораздо более простой способ сделать это. :)

Ответы [ 2 ]

2 голосов
/ 01 октября 2009

Чего бы это даже достигло? URL-адрес по-прежнему будет выглядеть точно так же в адресной строке пользователя, и PHP более способен игнорировать случайные переменные $_GET, чем когда-либо mod_rewrite.

Попробуйте удалить атрибут 'name="btnGet"' из кнопки отправки и также опустите поле 'gender'. Вы также можете использовать Javascript для динамического удаления ненужных элементов формы.

1 голос
/ 01 октября 2009
RewriteCond %{QUERY_STRING} team_id=([0-9]+)
RewriteCond %{QUERY_STRING} btnGet
RewriteRule stats.php stats.php?team_id=%1 [R]

Вы не можете сопоставить строки запроса с RewriteRule - вы должны использовать RewriteCond.

Как говорит "слишком много", простое переписывание не вызовет видимых изменений для пользователя, если вы не перезагрузите страницу. Таким образом, вам нужно [R] для принудительного перенаправления вместо простого переписывания, которое может не работать для логики вашей программы.

...