.htaccess和重写URL

.htaccess和重写URL,.htaccess,mod-rewrite,https,.htaccess,Mod Rewrite,Https,我们有以下“丑陋”URL示例: 我们需要使用我们自己的域URL作为地址,将我们的客户引导到上面的URL,这样看起来就像: https://www.PrettyURL.com/reservations?hotelid=1111&rateplanid=33333 我们的想法是,我们的客户“看到”的地址对于他们来说是一个好看的“熟悉”URL。这在.htaccess中可能吗?我们会在丑陋的URL中添加test.jsp之后的各种变量,因此它不能只是一组固定的变量 非常感谢您的帮助。如果您只是使用

我们有以下“丑陋”URL示例:

我们需要使用我们自己的域URL作为地址,将我们的客户引导到上面的URL,这样看起来就像:

https://www.PrettyURL.com/reservations?hotelid=1111&rateplanid=33333
我们的想法是,我们的客户“看到”的地址对于他们来说是一个好看的“熟悉”URL。这在.htaccess中可能吗?我们会在丑陋的URL中添加test.jsp之后的各种变量,因此它不能只是一组固定的变量


非常感谢您的帮助。

如果您只是使用普通HTTP,您可以将pretty URL服务器设置为一个服务器,将每个请求传递给丑陋的URL服务器,并将响应返回给客户端:

RewriteCond %{HTTP_HOST} ^pretty\.example\.com$
RewriteRule ^reservations$ http://ugly.example.com/directory/test.jsp [L,P]

但是,当您使用HTTPS时,如果不收到错误消息,证书的主机名就不可能是正确的。

这是适用于我的代码:

RewriteCond %{HTTP_HOST} ^www.prettyurl.com$
RewriteRule ^reservations$ https://uglyURL.com/istay/istay.jsp?%2 [QSA,L]
它完全符合我的需要


非常感谢Gumbo和其他人的帮助。

我设置了这个-但我丢失了第二个变量(在本例中为“&rateplanid=33333”。当我输入带有这些变量的漂亮url时,我会被重定向到丑陋的url站点,该站点似乎没有考虑第二组变量-好像它从未收到这样做的信息。您是否修改url的查询?如果是,请添加QSA标志,以使原始查询自动附加到新url。我不确定是否取消rstand,什么是“QSA标志”。对不起,我有点不明白!:)这是我的:

RewriteCond%{HTTP_HOST}^www.prettyurl.com$RewriteRule^/reservations$[L,P]指令末尾方括号中逗号分隔的列表称为标志。如果要在文档根目录中的.htaccess文件中使用此规则,请删除模式的前导斜杠。在测试模式之前,从URL路径中删除与目录相关的斜杠,并在应用规则后再次添加。问题是……第一组变量(即hotelid=1111)正在传输,但第二组变量(即&rateplanid=33333)没有传输。
RewriteCond %{HTTP_HOST} ^www.prettyurl.com$
RewriteRule ^reservations$ https://uglyURL.com/istay/istay.jsp?%2 [QSA,L]