【问题标题】:hiding a part of URL with .htaccess?用.htaccess 隐藏部分URL?
【发布时间】:2013-03-14 11:36:18
【问题描述】:

我试图在重写后隐藏部分 URL。

下面是我在 .htaccess 中使用的重写规则,当有人尝试访问 abc.com 时,这基本上会执行 http://example.com/index.php-someextrainfohere 。我想要实现的是,我想在重写之后隐藏“-someextrainfohere”部分。从我的感觉来看,我无法通过第二个重写规则来做到这一点。知道我该怎么做吗?

RewriteCond %{HTTP_HOST} ^abc.com [NC]
RewriteRule ^(.*)$ http://example.com/index.php-someextrainfohere

谢谢。

【问题讨论】:

  • 您所说的“隐藏”究竟是什么意思 - 您是否希望您的应用程序仍然可以使用这些信息?
  • 嗨 Pekka,我想在浏览器的地址栏上只显示xyz.com,没有其他所有内容。
  • 我不关注。如果您希望它消失,为什么要首先使用额外信息重写 URL?
  • 嗯,我的主要脚本托管在一个核心网站上。我有多个子站点,它们充当这个核心站点的代理。当有人试图通过子站点访问时,我试图使用一些额外的变量将其转发到核心站点,这些变量允许我跟踪一些数据(每个子站点都不同),这就是我不想要的暴露给我的访客。
  • 提供一些子站点上的原始 URI 示例,然后是核心站点上的重定向 URI。

标签: .htaccess url mod-rewrite


【解决方案1】:

嗯,我的主要脚本托管在一个核心网站上。我有多个子站点,它们充当这个核心站点的代理。当有人试图通过子站点访问时,我试图使用一些额外的变量将其转发到核心站点,这些变量允许我跟踪一些数据(每个子站点都不同),这就是我不想要的暴露给我的访客。

在这种情况下,无论如何您都必须进行标头重定向,并且您可以在解析附加信息后在 PHP 脚本中执行此操作。

在 index.php 中:

(parse the extra info)

header("location: http://www.xyz.com");
die();

理论上你也可以使用 HTTP_REFERER 变量而不是添加额外的信息,但它不是 100% 可靠的,因为它可以在客户端关闭。

【讨论】:

  • 谢谢佩卡!但是,脚本是加密的,我也不擅长 php。
  • @compixtr 我明白了——不过我认为这是唯一的方法。如果重写 .htaccess 中的 URL,信息将丢失到脚本中。
  • 谢谢佩卡!我会继续对此进行更多研究。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-06
  • 2016-06-05
  • 2011-03-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多