Строка запроса перезаписи URL-адреса Apache

Я хотел бы переписать этот URL:

https://example.com/super/index.php?route=doo/math&user_token=AxDJFKDLS73jfd

В этот URL:

https://example.com/super/math&user_token=AxDJFKDLS73jfd

Или даже этот:

https://example.com/super/user_token=AxDJFKDLS73jfd

Я пробовал разные методы, изменяя .htaccess в каталоге / super и добавляя:

RewriteEngine On
RewriteRule ^super/$ index.php?route=doo/math [L]

Также пробовал это:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^route=doo/math([^&]+)&?(.*)$
RewriteRule ^/?$ /%1?%2 [R,L]

Также путем добавления непосредственно в apache vhost:

<IfModule mod_rewrite.c>
    RewriteCond %{QUERY_STRING} ^(.*)&route=([0-9]{10,12})(?:&)(.*)$
    RewriteRule ^(.*)$ https://%{SERVER_NAME}/super/$1?%1/%2\?%3 [NE,L,R]
</IfModule>

К сожалению, ни один из методов не работает, помощь будет очень признательна.

Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
73
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это должно работать и относится к https://example.com/super/user_token=AxDJFKDLS73jfd

RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-d
RewriteRule ^super/user_token\=(.*)$ /index.php?route=doo/math&user_token=$1 [L]

Редактировать:

Или вы даже можете использовать это

RewriteRule ^super/user_token\=([a-zA-Z0-9_-]+)$ /index.php?route=doo/math&user_token=$1 [L]

Чтобы соответствовать вашим критериям. A-Za-z0-9

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