почему этот URL переписан без первого согласованного параметра?

#.htaccess #url-rewriting

#.htaccess #url-перезапись

Вопрос:

У меня есть это правило перезаписи в .htaccess:

 RewriteRule ^^babysitter/([^/]*)/([0-9] )/? /hlp/index.php/babysitter/$1/?p=$2 [QSA,L]
  

Итак, если я напишу этот URL:
localhost/hlp/babysitter/ Рим /3618
браузер переписывает его следующим образом:
localhost/hlp/babysitter/3618
чего я не хочу, даже если это возвращает правильный результат.

Для полноты я пишу свой целиком .файл htaccess:

 <IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /hlp/
RewriteRule ^index.php$ - [L]
RewriteRule ^^babysitters/([^/]*)/? /hlp/index.php/babysitters/?resume_location=$1 [QSA,L]
RewriteRule ^^babysitter/([^/]*)/([0-9] )/? /hlp/index.php/babysitter/$1/?p=$2 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /hlp/index.php [L]
</IfModule>
  

Комментарии:

1. Существуют ли какие-либо другие правила в вашем htaccess?

2. в вашем шаблоне перезаписи есть двойной курсор ^^ . это ошибка ввода?

3. По правде говоря, эти правила созданы WordPress, поэтому я бы не стал говорить об ошибке ввода.

4.Что ж, двойной курсор — это, безусловно, ошибка. RewriteBase Директива также является излишней, поскольку путь был добавлен к RewriteRule замене. Этот .htaccess файл предположительно находится в /hlp подкаталоге, а не в корне документа?

5. «браузер переписывает его следующим образом:» — Опубликованные вами правила, похоже, этого не делают? Вы предполагаете, что существует внешнее перенаправление на localhost/hlp/babysitter/3618 ?