обработка пустых значений в URL с переписыванием URL - PullRequest
0 голосов
/ 01 февраля 2012

Я делаю переписывание URL для своего сайта корзины покупок, и я хочу переписать URL страницы входа в систему. Но когда пользователь зашел со страницы корзины покупок, к URL-адресу добавлено несколько параметров, поэтому мы можем перенаправить пользователя в корзину покупок снова. И один случай, если этот пользователь напрямую зашел на страницу входа по гиперссылке входа. поэтому в этом случае дополнительные значения равны нулю.

Я написал правила переписывания URL, приведенные ниже.

RewriteRule ^login/(.*)/(.*)/(.*)/(.*[^/])$ /index.php?file=login&ichangeid=$1&to=$2&from=$3&msg=$4

Работает нормально, когда все четыре параметра передаются в URL, но когда параметр to и from имеет значение null, это означает, что пользователь непосредственно зашел на страницу входа, тогда первый параметр URL-адреса будет передан $ 1, а остальные // some_message переданы до $ 2 и $ 3 и $ 4 не сохраняются.

Так как мне этого добиться?

1 Ответ

0 голосов
/ 01 февраля 2012

Не уверен, в чем проблема. Но вы можете сделать параметры необязательными, используя следующее:

RewriteRule ^login(?:/(.*))(?:/(.*))(?:/(.*))(?:/(.*[^/]))$ /index.php?file=login&ichangeid=$1&to=$2&from=$3&msg=$4
...