ссылка перенаправления с вопросительным знаком в htaccess [дубликат]

Мне нужно перенаправить:

example.com/wiki/?t=1234 

на

example.com/vb/showthread.php?t=1234

Числа «1234» - это сотни страниц с разными номерами

, которые я пробую. htaccess, но не работает:

RewriteCond %{QUERY_STRING} t=[0-9]
RewriteRule ^(.*)$ /vb/showthread.php?t=$1 [L]
2
задан 9 February 2019 в 11:09
1 ответ
 RewriteCond% {QUERY_STRING} t = [0-9]
RewriteRule ^ (. *) $ /Vb/showthread.php?t=$1 [L]
 

Это будет соответствовать запросу, но не будет выполнять перенаправление должным образом ( $ 1 - это обратная ссылка на захваченную группу в шаблоне RewriteRule , а не строку запроса). Это также внутренняя перезапись , а не «перенаправление», как указано.

На перенаправление / wiki /? T = 1234 на / vb / showthread.php? t = 1234 , где 1234 - переменная, тогда вам следует сделать что-то вроде следующего:

RewriteCond %{QUERY_STRING} ^t=(\d+)
RewriteRule ^wiki/$ /vb/showthread.php?t=%1 [R=302,L]

Это соответствует URL-пути / wiki / и строка запроса, начинающаяся с t = , за которой следует 1 или более цифр. Цифры фиксируются регулярным выражением (\ d +) .

Обратная ссылка % 1 (обратите внимание на % , а не $ ] ) - это обратная ссылка на захваченную группу в предыдущем CondPattern .

Обратите внимание, что это 302 (временное) перенаправление. Но не меняйте это, пока не убедитесь, что все работает нормально.

1
ответ дан 3 December 2019 в 12:30

Теги

Похожие вопросы