Мне нужно перенаправить:
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]
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 (временное) перенаправление. Но не меняйте это, пока не убедитесь, что все работает нормально.