Переписать .htaccess для строки с несколькими запросами с единственным запросом в качестве пути - PullRequest
1 голос
/ 14 июля 2020

Я пробовал перезаписать .htaccess с

https://example.com/?page=contact&query1=test1&query2=test2

на

https://example.com/contact/?query1=test1&query2=test2

с выводом как

Array
(
    [page] => contact
    [query1] => test1
    [query2] => test2
)

Я попробовал перезаписать ниже, но не смог получить результат -

RewriteEngine On
RewriteRule ^(.*?)//?(.*)$ /?page=$1&$2 [NC,L]

Здесь я должен указать, что я могу сделать любой запрос после того, как https://example.com/contact/ выдаст следующий вывод, похожий на обычную строку get с " page"запрос.

Например, -

https://example.com/?page=contact2&query15=test14&query25=test24&query35=test34

выведет строку запроса $ _GET

Array
(
    [page] => contact2
    [query15] => test14
    [query25] => test24
    [query35] => test34
)

1 Ответ

1 голос
/ 15 июля 2020

Следующие правила должны помочь:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^/?([^/]+).* /?page=$1&%1 [NC,L]

Мы проверяем, не является ли открываемая ссылка действительным / существующим файлом или каталогом, затем фиксируем текущую строку запроса и, наконец, перезаписываем посещенную стр.

Посмотреть в действии: https://htaccess.madewithlove.be?share=1e473616-5364-5718-8819-a8032a5319c1

...