htaccess и необязательный параметр

M
На сайте с 27.01.2013
Offline
68
1181

Прошу помочь с написанием выражения при необязательных парметрах в УРЛе

Вот такой редирект работает, если в УРЛ есть все параметры :

RewriteRule ^razdel/(.*)/(.*)/(.*[^/])/?$ vivod.php?page=$1&act=$2&actid=$3 [QSA,L]

- page - обязательный параметр всегда присутствует в УРЛ

- act - не всегда присутствует в УРЛ

- actid - не всегда присутствует в УРЛ

Никак не могу правильно поставить [], чтобы обозначить параметры, как необязательные.

siv1987
На сайте с 02.04.2009
Offline
427
#1

^razdel/([^/]+)/(?:([^/]+)/)?(?:([^/]+)/)?$ vivod.php?page=$1&act=$2&actid=$3
M
На сайте с 27.01.2013
Offline
68
#2

К сожалению, не сработало

HTTP 404 Not Found при любых параметрах

M
На сайте с 27.01.2013
Offline
68
#4

siv1987, действительно работает при наличии слешей, а я проверял без них

Спасибо.

А можно ли сделать так, чтобы игнорировался последний слеш в "коротком" и длинном вариантах -

- site.ru/razdel/page/

- site.ru/razdel/page/start/1/

Или они обязательно должны быть?

Сейчас без них не работает

siv1987
На сайте с 02.04.2009
Offline
427
#5

Зачем?......

M
На сайте с 27.01.2013
Offline
68
#6

Потому что страницы такого вида - site.ru/razdel/page

уже давно существуют.

G0
На сайте с 10.08.2013
Offline
12
#7
mibuso:
Потому что страницы такого вида - site.ru/razdel/page
уже давно существуют.


^razdel(/[^/]+)(?:/([^/]+))?(?:/([^/]+))?$
siv1987
На сайте с 02.04.2009
Offline
427
#8
mibuso:
site.ru/razdel/page
уже давно существуют.

или


^razdel/([^/]+)/?(?:([^/]+)/)?(?:([^/]+)/)?$
M
На сайте с 27.01.2013
Offline
68
#9

Всем большое спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий