ИНФОРМАЦИЯ
Я очищаю несколько URL-адресов в своем веб-приложении, переписывая их в NGINX.
Первое, что я делаю, - это обработка пейджинга [ex.http://domain.com/p/2],, а второй - для области профиля пользователя [напр.http://domain.com/username].
Я использую следующие переписки:
rewrite ^/p/(.*)$ /index.php?p=$1; # paging rewrite from /p/<page_number>
rewrite ^/(.*)$ /user.php?user=$1; # user page rewrite from /<username>
Проблема
Проблема, с которой я столкнулся, должна быть довольно легко заметна.Поскольку я использую / p / и / username, переписывание не различает два и в итоге думает, что / p / 2 следует передать как страницу пользователя.
Я знаю, что мне нужно выполнить проверкуof / p / и трактую его иначе, чем что-либо еще, чтобы переписать, но в моем прочтении я читал, что по возможности избегать операторов IF из-за возможных неожиданных результатов.
Вопрос
В этом случае можно было бы использовать оператор IF, если это так, как бы это выглядело, чтобы убедиться, что я проверяю на предмет правильности запроса, поступающего от пользователя.Если есть способ выполнить проверку без заявления IF, я хотел бы получить некоторое представление о том, как выполнить это.
Благодарю за любую помощь.
Приветствия,
Джаред