我有一个链接发送给用户的一种格式,但我需要确保它通过一个主索引页面登录的目的。我认为mod重写是一种可行的方式。
用户正在点击的链接:
https://sub.domain.com/link/link.jsp?pageId=1234567&id=12345它需要去的地方:
https://sub.domain.com/index.html?o=(full original URL from above, including query string)本例中的o=将允许用户登录并将它们传递给原始的URL。现在,还涉及到一些图像和样式表,所以我需要让重写忽略它们。
在阅读了文档和一些代码示例(很多来自这个站点)之后,我尝试获取一个基本的代码,看看我的重写是否能正常工作,因为我对此还不熟悉。
这似乎会强制URL重写,但不会将用户传递到原始链接:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sub.domain.com [NC]
RewriteRule .* https://sub.domain.com/index.html?o=%{HTTP_HOST}%{REQUEST_URI}?%{QUERY_STRING} [L]还请注意,这都是在虚拟主机内部进行的,而不是htaccess。正如我所说的,当我测试它时,上面的代码似乎是重定向的,但它可能是意外的,根本不知道我应该如何编写它。
我还尝试在此代码中添加图像/样式表忽略项
RewriteCond %{REQUEST_URI} !\.(css|jpg|jpeg)$ [NC]在这一点上,一切都变得疯狂,但我知道这是因为我把代码放在一起,并认为它会工作。从那时起,我尝试了很多更改,但大多数都导致了循环条件,我不断地回到原点(你在上面看到的原始代码)。对于这篇长篇大论的帖子,我很抱歉,但我的头撞到了墙上,我认为这并不难。显然,尽管阅读了,我还是缺乏一些理解。任何指导都会非常有帮助。
发布于 2014-02-24 12:04:35
您当前解决方案的问题是:一个URL只能包含一个?。
请注意,您的代码将发送一个重定向状态代码在浏览器中进行重定向,因为您提供了一个FQDN。尝试仅使用/index.html?o=...进行内部重定向。如果这也不起作用(现在不确定),那么对第二个?进行URL编码。
编辑:重写,我猜我把问题弄错了。
https://stackoverflow.com/questions/21978651
复制相似问题