如何转发到包含所有变量的新URL?

时间:2012-02-23 11:49:58

标签: .htaccess redirect http-status-code-301

我一直在向朋友提供我的子域名,直到他设法获得新域名。

现在他拥有它,我想将所有旧链接重定向到他的域名:

示例:

http://subdomain.my-domain.com/post.php?118&tg=602643

重定向到

http://subdomain.com/post.php?118&tg=602643

所以我想跟上重定向

中post.php背后的所有变量

我是.htaccess新手 - 你能帮我提供正确的重写规则吗?

此外,如果你碰巧有关于.htaccess的任何好文章以及如何管理它,那么非常感谢链接。

由于

修改 这是我想要做的实际用例:  重定向

 http://raketa2.tasselhof.com/nastenka.php?115&up=648483

 http://www.raketa2.cz/nastenka.php?115&up=648483

但是,由于我的网站上不存在更多子域名,因此我在主页上看到404错误:

/nastenka.php?115&up=648483 -> Provided 404 Error

我试过了:

RewriteCond %{Request_URI} ^/nastenka\.php [NC]
RewriteCond %{QUERY_STRING} ^\d+&tg=\d+$ [NC]
RewriteRule ^(.*)$ http://www.raketa2.cz/$1?%{QUERY_STRING} [R=301,L]

但没有好处......

解决 咄!我真傻。我刚刚向域DNS添加了两条新的CNAME记录。应该做的伎俩

1 个答案:

答案 0 :(得分:1)

这样做:

RewrtiteEngine on
ReWriteBase /

RewriteCond %{HTTP_HOST} ^subdomain\.
RewriteRule ^(.*)$ http://subdomain.com/$1?%{QUERY_STRING} [R=301,L]

QUERY_STRING post.php?118&tg=602643将会出现。


  
      
  • 假设您的域名中没有post.php
  •   

这样做:

RewrtiteEngine on
ReWriteBase /

RewriteCond %{Request_URI} ^/post\.php [NC]
RewriteRule ^(.*)$ http://subdomain.com/$1?%{QUERY_STRING} [R=301,L]

  
      
  • 如果您的域中存在post.php,但您没有使用类似的查询字符串,
  •   

这样做:

RewrtiteEngine on
ReWriteBase /

RewriteCond %{Request_URI} ^/post\.php [NC]
RFewriteCond %{QUERY_STRING} ^\d+&tg=\d+$ [NC]
RewriteRule ^(.*)$ http://subdomain.com/$1?%{QUERY_STRING} [R=301,L]