RewriteRule принимает 3 параметра, но 2-й и 3-й параметры необязательны - PullRequest
2 голосов
/ 24 сентября 2011
mydomain.com/MyFolder/parameter-1

У меня есть этот htaccess RewriteRule -

RewriteRule ^([a-z0-9\-]+)/?$ index.php?c=$1 [NC,L]

Файл htaccess находится внутри [MyFolder], и он принимает только один параметр.

Как можно принять RewriteRule для принятия3 параметра, но 2-й и 3-й параметры являются необязательными, поэтому следующие 4 URL-адреса ВСЕ возможны

mydomain.com/MyFolder/param-1/param-2/param-3
mydomain.com/MyFolder/param-1
mydomain.com/MyFolder/param-1/param-2
mydomain.com/MyFolder/param-1/param-3

Редактировать: Я сделаю так, чтобы PARAM3 всегда начинался со слова [pop]

Спасибо

1 Ответ

3 голосов
/ 24 сентября 2011

RewriteRule ^([a-z0-9\-]+)/?([a-z0-9\-]+)?/?([a-z0-9\-]+)?/?$ index.php?c=$1&d=$2&e=$3 [NC,L]

Это будет работать для:

mydomain.com/MyFolder/param-1/param-2/param-3
mydomain.com/MyFolder/param-1
mydomain.com/MyFolder/param-1/param-2

с $_GET[d] и $_GET[e], имеющими значение '' в некоторых случаях.

Имея:

mydomain.com/MyFolder/param-1/param-2
mydomain.com/MyFolder/param-1/param-3

Мне кажется невозможным, как есть, как вы можете узнать, является ли второй параметр 2 или 3?

...