Что-то не так с моим RewriteRule? Обратная ссылка ведет себя странно - PullRequest
0 голосов
/ 25 мая 2020

Я пытаюсь сделать rewriteRule для моего .htaccess

RewriteEngine On
RewriteRule ^/LoginUser(.*)$ src/core/index.php?url=$1 [L]

Я пытаюсь захватить все, что находится после LoginUser, следовательно, группу (. *) И использовать ее в $ 1. Я просто хочу исключить "/ LoginUser" из строки запроса

В настоящее время:

Input: http://foobar.com/LoginUser/Account/cat
Output: http://foobar.com/src/core/index.php?url=/LoginUser/Account/cat

Но я ожидал:

Output: http://foobar.com/src/core/index.php?url=/Account/cat

Что не так с моим регулярным выражением ? Должно быть, с этим что-то не так, я бился головой об стену, но ответа не получил. Если бы кто-нибудь мог указать мне правильное направление, я был бы очень благодарен.

1 Ответ

1 голос
/ 25 мая 2020
  1. В начале правила не должно быть /, поэтому вам нужно правило:
     RewriteRule ^LoginUser(.*)$ src/core/index.php?url=$1 [L]
Проблема с этим правилом, которое он также преобразует:
     Input: http://foobar.com/LoginUserToTest/Account/cat
     Output: http://foobar.com/src/core/index.php?url=ToTest/Account/cat

Чтобы этого избежать, вам нужно следующее правило:

     RewriteRule ^LoginUser/(.*)$ src/core/index.php?url=/$1 [L]
...