首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mod-rewrite重写链接

使用mod-rewrite重写链接
EN

Stack Overflow用户
提问于 2014-02-24 12:01:27
回答 1查看 89关注 0票数 0

我有一个链接发送给用户的一种格式,但我需要确保它通过一个主索引页面登录的目的。我认为mod重写是一种可行的方式。

用户正在点击的链接:

代码语言:javascript
复制
https://sub.domain.com/link/link.jsp?pageId=1234567&id=12345

它需要去的地方:

代码语言:javascript
复制
https://sub.domain.com/index.html?o=(full original URL from above, including query string)

本例中的o=将允许用户登录并将它们传递给原始的URL。现在,还涉及到一些图像和样式表,所以我需要让重写忽略它们。

在阅读了文档和一些代码示例(很多来自这个站点)之后,我尝试获取一个基本的代码,看看我的重写是否能正常工作,因为我对此还不熟悉。

这似乎会强制URL重写,但不会将用户传递到原始链接:

代码语言:javascript
复制
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。正如我所说的,当我测试它时,上面的代码似乎是重定向的,但它可能是意外的,根本不知道我应该如何编写它。

我还尝试在此代码中添加图像/样式表忽略项

代码语言:javascript
复制
RewriteCond %{REQUEST_URI} !\.(css|jpg|jpeg)$ [NC]

在这一点上,一切都变得疯狂,但我知道这是因为我把代码放在一起,并认为它会工作。从那时起,我尝试了很多更改,但大多数都导致了循环条件,我不断地回到原点(你在上面看到的原始代码)。对于这篇长篇大论的帖子,我很抱歉,但我的头撞到了墙上,我认为这并不难。显然,尽管阅读了,我还是缺乏一些理解。任何指导都会非常有帮助。

EN

回答 1

Stack Overflow用户

发布于 2014-02-24 12:04:35

您当前解决方案的问题是:一个URL只能包含一个?

请注意,您的代码将发送一个重定向状态代码在浏览器中进行重定向,因为您提供了一个FQDN。尝试仅使用/index.html?o=...进行内部重定向。如果这也不起作用(现在不确定),那么对第二个?进行URL编码。

编辑:重写,我猜我把问题弄错了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21978651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档