Правило перезаписи .htaccess не работает правильно с index.php? path - PullRequest
2 голосов
/ 14 марта 2019

Привет, у меня есть следующий старый URL

www.domain.de/index.php?leistungen

, а новый -

www.domain.de/leistungen

Я попробовал следующее RewriteRuile, как делал это миллионы раз.

RewriteRule ^index.php?leistungen /leistungen/ [L,R=301]

Но в этом случае я получил следующий результат:

www.domain.de/path/?leistungen=

И он направляет к корневому URL

В чем проблема в этом случае?

Заранее спасибо.

1 Ответ

1 голос
/ 14 марта 2019

Вы можете использовать эти правила в корне своего сайта .htaccess:

RewriteEngine On

# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?([^\s&]+) [NC]
RewriteRule ^ /%1? [R=301,L,NE]

# internal forward from pretty URL to actual one
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ index.php?$1 [L,QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...