2011-03-03 81 views
0

我有特定于个别产品的域的列表,如
GreatProduct.com
SomeOtherProduct.com
SomeCustomProduct.com
的.htaccess - 重写单个URL来一个网址与GET参数

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

mydomain.com/products/allproducts.php?prod=ABCD?type=STAND
mydomain.com/products/allproducts.php?prod= ABGH?类型= 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

我发现很多的例子把一个基于参数的URL变成一个没有,但没有这样的!

谢谢!

回答

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] 

我不知道你想用STANDSAME做什么,CUSTOM位..

+0

这并不一定是在.htaccess文件中,但我不知道另一种方法来实现301重定向。 – user643373 2011-03-05 04:19:32

+0

正如所示,代码在我尝试使用时在我的Apache Web服务器上导致了“内部服务器错误”。我不知道这是由于代码或我的服务器配置。 – user643373 2011-03-05 04:20:30

+0

我打算在位于每个域根目录的.htaccess文件中包含此代码。必要时,“STAND”,“SAME”和“CUSTOM”标志将在每个脚本中更改。谢谢您的帮助! – user643373 2011-03-05 04:22:53