htaccess переписать вопросы для изменения структуры URL и перенаправления назад - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть следующий код:

RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ 
index.php?pageid=$1&pageid=$2&pageid=$3 [NC,L] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ index.php? 
pageid=$1&pageid=$2 [NC,L] 
RewriteRule ^([A-Za-z0-9-]+)/$ index.php?pageid=$1 [NC,L] 

Это делает следующее:

Когда кто-то вводит https://www.thegoodmarketer.co.uk/contact-us/, например, он загружает следующую страницу https://www.thegoodmarketer.co.uk/index.php?pageid=contact-us

Чего я хочу достичь:

  1. Когда кто-то вводит https://www.thegoodmarketer.co.uk/index.php?pageid=contact-us Я хочу, чтобы он автоматически перенаправлял на правильную структуру URL: https://www.thegoodmarketer.co.uk/contact-us/

То же самое относится ко всем страницам.

Я так старался понять htaccess, но не могу с этим разобраться!

Очень благодарен за любую помощь, пожалуйста.

1 Ответ

0 голосов
/ 27 сентября 2018

Попробуйте с приведенным ниже примером для вашего URL и используйте флаг конца в правиле внутреннего перенаправления для предотвращения рекурсивного перенаправления.

RewriteCond %{REQUEST_URI} ^/index.php
RewriteCond %{QUERY_STRING} ^pageid=([^/]+)$
RewriteRule ^ /%1 [QSD,R]

RewriteRule ^([A-Za-z0-9-]+)/$ index.php?pageid=$1 [NC,L,END]
...