我需要重定向:
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]
答案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
(注意是%
,而不是$
)是对前一个捕获组的反向引用条件模式。
请注意,这是一个 302(临时)重定向。但请不要更改它,除非您确定它正常工作。