.htaccess:使用查询字符串重写URL

.htaccess:使用查询字符串重写URL,.htaccess,.htaccess,我需要使用.htaccess重写一个URL,该URL有两个查询字符串。这是我的原始URL: http://domain.com/channel-partners/en/index.php?location=phoenix-az&name=company 我如何将其写成: http://cp.domain.com/phoenix-az/company 这将以partners/location/name格式将URL重定向到您提供的原始URL,并带有可选的尾部斜杠。位置和名称可以是字母数字

我需要使用.htaccess重写一个URL,该URL有两个查询字符串。这是我的原始URL:

http://domain.com/channel-partners/en/index.php?location=phoenix-az&name=company
我如何将其写成:

http://cp.domain.com/phoenix-az/company
这将以partners/location/name格式将URL重定向到您提供的原始URL,并带有可选的尾部斜杠。位置和名称可以是字母数字、下划线或破折号字符

注意:我已经在URL前面加上了文字伙伴。如果没有它,您的重写规则将过于宽松,几乎匹配所有请求。请随意改变它

使现代化 要从您的子域重定向,上述内容需要位于cp.domain.com的.htaccess文件中。您需要将重写规则修改为以下内容:

RewriteRule ^partners/([\w-]+)/([\w-]+)/?$ http://domain.com/channel-partners/en/index.php?location=$1&name=$2 [L]

然而,我真的不建议这样做。链接管理将是一场噩梦。你真的应该尝试在同一个域下拥有所有这些链接。301如果必须,请从子域重定向。

您是从子域重定向吗?不,我是将其重定向到子域。重写只能以一种方式工作。它会从你想要的东西重定向到你想要的东西。这不起作用。我得到一个内部服务器错误。如果我在上删除重写规则,我不会得到错误,但它也不会重定向。有没有办法使这些规则更通用?关于你上面的评论
RewriteRule ^partners/([\w-]+)/([\w-]+)/?$ http://domain.com/channel-partners/en/index.php?location=$1&name=$2 [L]