Не удается заставить мое регулярное выражение .htaccess работать так, как задумано - PullRequest
0 голосов
/ 07 июля 2019

Я использую свой .htaccess для красивых URL с помощью регулярных выражений.

У меня есть несколько правил RewriteRule в моем .htaccess, и все они отлично работают.

У меня проблема с одним из них, из-за которого я не могу тренироваться, если иду не так, простоприводит меня к моей странице 404 не найден.

RewriteRule ^member/password-reset/v/([0-9]+)?/([0-9]+)?/([a-z0-9]+)?$ /member/password-reset-verify.php?&uid=$1&id=$1&t=$1 [NC,L]

Уродливый URL выглядит так (без скобок):

/ member / password-reset-verify.php?& uid = (user_uid_here) & id = (another_id_here) & t = (token)

Мне бы хотелось, чтобы симпатичный URL выглядел так (без скобок)

/ member /сброс пароля / v / (user_uid_here) / (another_id_here) / (токен)

  • uid (содержит только цифры)

  • id (содержит только цифры)

  • токен (может содержать буквы и цифры)

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

1 Ответ

1 голос
/ 07 июля 2019

Я уже упоминал некоторые проблемы с этим вопросом в моем комментарии выше.

Тем не менее я опубликую попытку немного очистить ваше текущее правило:

RewriteEngine on
RewriteRule ^/?member/password-reset/v/(\d+)/(\d+)?/(\w+)/?$ /member/password-reset-verify.php?uid=$1&id=$2&t=$3 [END]

В случае, если вы получите обратно статус http 500 (внутренняя ошибка сервера), есть вероятность, что вы используете очень старую версию сервера apache http. Вы увидите определенный намек на неопределенный флаг END в файле журнала ошибок вашего http-сервера. В этом случае попробуйте вместо этого использовать старый флаг L, он будет , вероятно, работать так же, хотя это немного зависит от ваших настроек.

Это правило будет работать аналогично в конфигурации хоста http-сервера или в файле динамической конфигурации (".htaccess"). Если у вас есть доступ к конфигурации хоста http-сервера, вам вообще не следует использовать файлы динамической конфигурации, они имеют массу недостатков. Они предлагаются только для людей, привязанных к действительно дешевому хостинг-провайдеру, как последний вариант для тонкой настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...