Apache htaccess通过传递所有参数重写到新域

Apache htaccess通过传递所有参数重写到新域,apache,.htaccess,Apache,.htaccess,我在谷歌上找到了很多建议,我试着把我需要的所有东西都粘贴在一起。但是,我没有管理我的htaccess文件来工作 我想把一切从 www.gugus.com/abc/?lang=fr&something=true 到 提前感谢您的帮助 此htaccess必须位于gugugus.com根目录下: RewriteEngine On RewriteBase / RewriteRule ^abc/?$ https://test.example.com/abc/ [L,R=301,QSA] 这将只

我在谷歌上找到了很多建议,我试着把我需要的所有东西都粘贴在一起。但是,我没有管理我的htaccess文件来工作

我想把一切从

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


提前感谢您的帮助

此htaccess必须位于
gugugus.com
根目录下:

RewriteEngine On
RewriteBase /
RewriteRule ^abc/?$ https://test.example.com/abc/ [L,R=301,QSA]
这将只重定向页面
abc
abc/
,带或不带查询字符串

编辑

如果希望htaccess位于
abc/
文件夹中:

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

通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入
文档根/abc
目录下的
.htaccess

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_重写规则时,避免使用
R=301
(永久重定向)。

是否有解决方案将.htaccess文件放在/abc/目录中?可能的话,请参阅我的编辑。这不会重定向子页面,如
gugugus.com/abc/otherstuff.html
。如果您不想重定向
abc/
文件夹中的所有流量,请使用
^.*$
而不是
^/?$
重定向的链接不包含任何参数。有没有办法回应新链接?我不知道传递参数是否有问题,应用程序(在新url后面)会用无参数替换当前链接。使用您的解决方案,我会丢失url中的查询字符串。我可能需要能够以某种方式回显新链接,以便找出错误所在(htaccess或新url后面的应用程序),您的解决方案也可以工作。zessx回答问题的速度快了一点。因此我接受了他的解决方案。非常感谢你的帮助!
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]