#.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
?