2013-05-06 67 views
1

我在google上发现了很多建议,并试图将我需要的所有内容粘贴到一起。但是,我没有管理我的htaccess文件工作。htaccess通过传递所有参数来重写新域名

我想一切从

www.gugus.com/abc/?lang=fr&something=true 

提前重定向到

https://test.example.com/abc/?lang=fr%something=true 

感谢您的帮助!

回答

1

这htaccess的必须在gugus.com根:

RewriteEngine On 
RewriteBase/
RewriteRule ^abc/?$ https://test.example.com/abc/ [L,R=301,QSA] 

这只会重定向abcabc/页面,使用或不使用查询字符串。

编辑

如果你想htaccess的被定位成abc/文件夹:

RewriteEngine On 
RewriteBase /abc/ 
RewriteRule ^/?$ https://test.example.com/abc/ [L,R=301,QSA] 
+0

是否有解决方案,其中.htaccess文件位于/ abc /目录中? – mkn 2013-05-06 14:01:10

+0

这是可能的,请参阅我的编辑。这不会像'gugus.com/abc/otherstuff.html'这样重定向子页面。如果您不想在'abc /'文件夹中重定向所有流量,请使用'^。* $'替代'^ /?$' – zessx 2013-05-06 14:06:25

+0

重定向的链接不包含任何参数。有没有办法回应新的链接?我不知道传递参数时是否有什么问题,并且应用程序(位于新的url后面)会替换当前的链接,并且它没有参数 – mkn 2013-05-06 14:14:37

1

启用mod_rewrite的,并通过httpd.conf的.htaccess,然后把这个代码在你.htaccessDOCUMENT_ROOT/abc目录:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase /abc/ 

RewriteCond %{HTTP_HOST} ^www\.gugus\.com$ [NC] 
RewriteRule^https://test.example.com%{REQUEST_URI} [L,R=302] 

一旦你确认它工作正常,将R=302更换为R=301。避免在测试mod_rewrite规则时使用R=301(永久重定向)。

+0

随着你的解决方案,我在URL中丢失了查询字符串。我可能需要以某种方式能够回显新链接,以便找出错误的位置(htaccess或新网址背后的应用程序) – mkn 2013-05-06 14:19:26

+0

您的解决方案也可以。 zessx在回答这个问题时有点快。所以我接受了他的解决方案非常感谢您的帮助! – mkn 2013-05-06 14:23:44

+0

不客气,很高兴你的问题解决了。 – anubhava 2013-05-06 14:26:44