WordPress htaccess переписать правила с параметром URL - PullRequest
0 голосов
/ 01 мая 2020

У меня есть сценарий php на root сервера, на который люди ссылаются, например:

http://mywebsite.com/test.php?id=123

Я создал новый веб-сайт WordPress для клиента и создал пользовательскую запись type, который принимает параметры URL и работает аналогично старому сценарию при обращении по адресу:

http://mywebsite.com/test/?id=123

Также запрашивается, чтобы пользователь всегда перенаправлялся на http, даже если он пришел по ссылке https. Я добавил свои правила переписывания после правил WordPress в htaccess. Вот мои правила:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{HTTPS} on
RewriteCond %{REQUEST_URI} test.php [NC]
RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ test.php?id=$1 [L,QSA]
</IfModule>

Первый - всегда перенаправлять на http, а второй - переписывать и сохранять параметр. Это частично работает, если я получаю доступ к:

https://mywebsite.com/test.php?id=123

, это приводит меня к:

http://mywebsite.com/test/?id=123

, но не переписывает, если я получаю доступ:

http://mywebsite.com/test.php?id=123

Что я отсутствует

1 Ответ

0 голосов
/ 02 мая 2020

Это соответствует требованиям, оно также обрабатывает www or нет. Работает в конце .htaccess, поэтому не противоречит правилам Wordpress:

RewriteCond %{HTTP_HOST} ^mywebsite\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mywebsite\.com$
RewriteRule ^test\.php$ "http\:\/\/mywebsite\.com\/test\/" [R=301,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...