繁体   English   中英

使用.htaccess将带有参数的URL重定向到带有参数的URL

[英]Using .htaccess To Redirect URL With Parameters To URL With Paramters

我已经搜寻了一段时间,试图找出如何重定向以下网址:

http://mysite.org/old-folder/?abc=1144

到新网址:

http://mysite.org/new/folders/?xyz=1144

其中数字1144是动态的。

我已经做到了这一点,但似乎无法正常工作:

RewriteRule ^old-folder/\?abc=([0-9]+)(/)?$ new/folders/\?xyz=$1 [R=301]

经过更多研究后,我得出了以下结论:

RewriteCond %{QUERY_STRING} ^abc=([0-9]+)$
RewriteRule ^old-folder new/folders/?xyz=%1 [L,R=301]

如果将来有人遇到这种情况,它将仅匹配数字“ abc”的值。 如果您希望它匹配任何内容,请用以下内容替换第一行:

RewriteCond %{QUERY_STRING} ^abc=(.*)$

有关标志[L,R = 301]的说明,请参见apache文档: http : //httpd.apache.org/docs/current/rewrite/flags.html

您无法在RewriteRule匹配查询字符串。

在您的DOCUMENT_ROOT/.htaccess文件中尝试以下规则:

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} (?:^|&)abc=([^&]*) [NC]
RewriteRule ^old-folder/$ new/folders/?xyz=%1 [L,NC]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM