Назад | Перейти на главную страницу

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