Regex в htaccess просто передает 1 символ - PullRequest
0 голосов
/ 07 января 2019

Я использовал регулярное выражение в htaccess для сопоставления имени пользователя на моем сайте, похожего на твиттер, но оно просто передавало в файл php последний символ в переменную $ _GET ['referer'].

Это регулярное выражение: ^ (\ w) {1,15} $

Например, если я зайду в регистрацию / johndoe / он отправит php "e"

Вот мой htaccess, как вы можете видеть, я не эксперт по серверам Apache. Люблю 4 всех, с новым годом.

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteRule ^signup/(\w){5,15}/?$ signup.php?referer=$1 

1 Ответ

0 голосов
/ 07 января 2019

Ваша проблема в скобках. Вместо:

RewriteRule ^signup/(\w){5,15}/?$ signup.php?referer=$1 

Вы хотите:

RewriteRule ^signup/(\w{5,15})/?$ signup.php?referer=$1 

Так что он возвращает весь набор совпавших символов, а не только последний.

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