Я пытаюсь, чтобы мои URL выглядели "лучше". Вместо x.com/reset-password/?email=name@x.com я хочу, чтобы это был x.com/reset-password/name@x.com
Используя mod_rewrite, я заставил его работать для каждой соответствующей строки, за исключением строк с точками (.). Когда я разрешаю точки в операторе RewriteRule, возникает внутренняя ошибка сервера. Я думаю, это потому, что даже когда применяется флаг L, он должен в последний раз перенаправить на новое место назначения и, следовательно, войти в бесконечный цикл, поскольку мое регулярное выражение слишком мягкое.
Я пытаюсь использовать RewriteCond, чтобы не допустить перенаправления любых URI со знаком равенства, что решает проблему бесконечного цикла, но это не правильно. Я спрашиваю одно из двух решений, я думаю: либо способ включить точки в исходное регулярное выражение, либо способ остановить URI с = от оценки
Исходное регулярное выражение:
RewriteRule ^([^.]+)$ ?email=$1 [L]
Модифицированный:
RewriteCond %{REQUEST_URI} ^[^=]+$
RewriteRule ^(.+)$ ?email=$1 [L]
Я знаю, что в Интернете много обучающих программ по regex / htaccess (я провел последние несколько часов, читая их ...), но я не могу понять это. Любая помощь приветствуется!