.htaccess - 使用GET参数将单个URL重写为一个URL

时间:2011-03-03 18:06:06

标签: .htaccess

我有一个特定于各个产品的域列表,例如
GreatProduct.com
SomeOtherProduct.com
SomeCustomProduct.com
等。

我想现在重定向这些,以便他们指向

mydomain.com/products/allproducts.php?prod=ABCD?type=STAND
mydomain.com/products/allproducts.php?prod=ABGH?type=STAND
mydomain.com/products/allproducts.php?prod=ABGH?type=CUSTOM
等。

(我知道应该有" http:// www。在这些前面,但我限制发布两个以上的链接)

我现在将每个域指向一个单独的根目录,因此我打算在每个域的根目录中放置一个不同的.htaccess。

到目前为止,我可以使用.htaccess将每个域发送到mydomain.com/products/allproducts.php,但参数无法正常工作。

这个.htaccess,

redirectMatch 301 ^(.*)$ http://www.mydomain.com/products/allproducts.php%3fprod=ABCD%26type=SAME  
redirectMatch permanent ^(.*)$ http://www.mydomain.com/products/allproducts.php%3ftwn=ABCD%26type=SAME  

结果

mydomain.com/products/allproducts.php%253prod=ABCD%2526type=SAME

我找到了许多将基于参数的网址转换为没有网址的示例,但没有这样的内容!

谢谢!

1 个答案:

答案 0 :(得分:0)

@ user643373

这必须在.htaccess文件中吗?

mod_rewrite可能会为此提供解决方案:

RewriteEngine On
RewriteCond "%{HTTP_HOST}" "!allproducts"
RewriteCond "%{HTTP_HOST}" "^(?:www\.)?([^.]+)\.com" [NC]
RewriteRule "(.*)"         "http://mydomain.com/products/allproducts.php?prod=%1&type=SAME" [QSA,R=301,L]

我不知道你想对STANDSAMECUSTOM位做些什么..