.htaccess — очистить URL в php с двумя параметрами get

Я работаю над сценарием PHP, который использует чистые URI.

Моя проблема в том, что у меня есть одна страница, которая сначала не использует параметр get, затем одна и в конце две.

Линия в .htaccess В данный момент файл выглядит так:

 RewriteRule ^birthing-records/([^/]+)/?$ birthing-records.php?url=$1 [L,QSA,NC]

Но если я добавлю второй параметр следующим образом:

RewriteRule ^birthing-records/([^/]+)/([^/]+)/?$ birthing-records.php?url=$1&second=$2 [L,QSA,NC]

Скрипт перенаправляет меня на страницу ошибки.

Как мне это настроить?

Нужно ли две строки в .htaccess для этого случая?

Обычно я решаю эту проблему, просто вызывая другую страницу, но я хотел бы сохранить точные URI, которые я использую сейчас, потому что все эти страницы проиндексированы в Google. Я был бы очень признателен за любую помощь.

1

Решение

Вам нужно одно правило для каждого, иначе, когда вы введете один параметр, он будет нарушен.

RewriteRule ^birthing-records/([^/]+)/?$ birthing-records.php?url=$1 [QSA,NC]
RewriteRule ^birthing-records/([^/]+)/([^/]+)/?$ birthing-records.php?url=$1&second=$2 [L,QSA,NC]

Спасибо @Martin за это примечание: что опция L первой из них была удалена, поскольку опция L указывает на последнее правило, которое должно быть запущено (с опцией L может существовать только одно правило)

В противном случае, насколько я могу судить, каждый из них работает нормально по отдельности, но если вы хотите принять 1 или 2 параметра, то вам нужны два правила.

Вы можете проверить htaccess здесь: http://htaccess.mwl.be/

2

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector