使用多个参数重定向 URL 以清除 .htaccess 中的 URL

Posted

技术标签:

【中文标题】使用多个参数重定向 URL 以清除 .htaccess 中的 URL【英文标题】:Redirecting URLs with multiple parameters to clean URLs in .htaccess 【发布时间】:2015-03-19 05:52:01 【问题描述】:

我正在尝试重定向 .htaccess 中具有多个参数的 URL,例如:

http://www.example.com/index.php?p=product&id=10&parent=0 

到另一个域上的干净 URL,例如

http://example2.com/product/product10/

我相信我的常规重定向方法(在我创建的目录的索引文件中使用 PHP 标头)将无法正常工作,因为无法将 ? 放入目录名称中。

我做了一些小的 .htaccess,但没有转义参数或任何东西的经验,我能找到的唯一教程是只转义单个参数。

谁能指点一下?

【问题讨论】:

【参考方案1】:

你可以在你的根.htaccess中使用它:

RewriteEngine on
RewriteCond %QUERY_STRING ^p=([^&]+)&id=([^&]+) [NC]
RewriteRule ^index\.php$ http://example2.com/%1/%1%2/? [R=302]

当测试正常时将[R=302] 更改为[R=301]

【讨论】:

以上是关于使用多个参数重定向 URL 以清除 .htaccess 中的 URL的主要内容,如果未能解决你的问题,请参考以下文章

.htacces-清除URL

带有查询字符串的 URL 重定向 - htaccess

具有多个参数的 IIS 重定向

如何使用 post 参数重定向到外部 URL?

使用查询参数和 URL 中的 ~ 进行 301 重定向

使用 post 参数重定向到付款 URL