Apache Rewrite Regex условно добавляет подстроку к замене? - PullRequest
0 голосов
/ 02 июля 2011

Привет :) Нет лучшего способа объяснить это, чем на примере.

ОБЫЧНЫЙ СЛУЧАЙ

Я использую это правило перезаписи:

RewriteRule ^(.+)(\?.+)?$ index.php?params=$1 [L]

Чтобы сделать что-то вроде:

# abc.com/home      =>      abc.com/index.php?params=home

Однако, это отбрасывает все существующие параметры GET, например:

http://localhost/ajax/workouts/getExerciseDetails?exerciseID=41

Я получаю:

params=ajax/workouts/getExerciseDetails

Когда мне нужно:

params=ajax/workouts/getExerciseDetails&exerciseID=41

ТАК ... Мой вопрос по-английски: есть ли способ условно добавить какие-либо ранее существовавшие параметры GET (или строку после '?') К замене И все же удовлетворить мое основное использование этого регулярного выражения?

Если это нельзя сделать в том же правиле перезаписи, возможно, с помощью if / then / else?

Спасибо!

1 Ответ

2 голосов
/ 02 июля 2011

Просто установите флаг QSA , чтобы исходный запрос автоматически добавлялся к новому:

RewriteRule ^(.+)$ index.php?params=$1 [L,QSA]
...