Перенаправление htaccess в wordpress

Используя WordPress с Divi и настраиваемыми php-страницами / скриптами, я получил следующие URL-адреса:

https://example.com/?day=today
https://example.com/?sport=1&league=123 (1=football and 123=premier_league)

Я хочу сделать их более удобными для пользователей и SEO и переписать их в htaccess так:

https://example.com/?day=today ==> https://example.com/today
https://example.com/?sport=1&league=123 ==> https://example.com/football/premier_league

Для "дневной" ссылки попробовал этот код, но он не работает

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([0-9a-z\-\_]+)?$ /?day=$1 [L,QSA,NC]
</IfModule>

Для другого примера со спортом и лигой я хотел найти решение, в котором я вручную добавлю старую ссылку и новую ссылку, попробовал перенаправить 301, но я думаю, что это не сработает, верно?

Redirect 301 https://example.com/?sport=1&league=123 https://example.com/football/premier_league

Я также пробовал плагин Redirection в WP, но он создал правило, которое уничтожает страницу и выдает ошибку 500:

RewriteRule ?sport=1&liga=123 https://example.com/football/premier_league [R=301,L]

или же

RewriteCond %{QUERY_STRING} ^sport=1&league=123$
RewriteRule ^$ https://example.com/football/premier_league [R=301,L]

который дал адрес: https://example.com/premier_league/?sport=1&league=123

Мне также было интересно, смогу ли я сделать это с чистым php, поскольку в PHP я могу легко получить правильные строки для идентификаторов видов спорта и лиг. К сожалению, изменить "? Sport = 1 & league = 32758" на "? Sport = football & league = premier_league", а затем очистить его с помощью перезаписи в htacces, сейчас невозможно.

Я не жду полного кода для обеих задач, я считаю, что некоторых направлений будет достаточно. Я просматриваю стек и Google, и не могу найти никаких примеров со ссылками, которые выглядят как мои, поэтому example.com/?sport=1 не example.com/page?sport=1

После дальнейшего расследования я считаю, что проблема заключается в том, как я открываю свои пользовательские страницы. Я использую короткие коды для запуска скрипта, и внутри скрипта мой php-код включен с параметрами. Думаю, из-за этого я попал на страницу https://example.com/premier_league/?sport=1&league=123, которая была довольно близка, но не работала. Теперь мой вопрос в том, как отправить эти параметры в правильный скрипт, но не в URL-адрес.

Разве это не делается путем включения постоянных ссылок в админке WordPress и использования htaccess по умолчанию?

Jesse 30.03.2021 04:09

Я не знаю, правильно ли я вас понял, но эти php-страницы являются нашими настраиваемыми страницами, не включенными в сам WordPress. Мы используем шорткоды внутри functions.php в WP, чтобы открывать их должным образом.

UrukMorg 30.03.2021 04:16

Ах хорошо. Спасибо за разъяснение.

Jesse 30.03.2021 04:17

При последней показанной вами попытке добавьте вопросительный знак в конце целевого URL-адреса - это предотвратит использование исходной строки запроса.

CBroe 30.03.2021 09:20

Что "?" в конце создается правильный URL-адрес, но мой PHP-код не работает. Я предполагаю, что проблема в шорткодах, которые я использую для включения своего скрипта.

UrukMorg 30.03.2021 09:54
0
5
22
0

Другие вопросы по теме