【问题标题】:Rewrite rules to hide an url重写规则以隐藏 url
【发布时间】:2011-09-23 01:57:59
【问题描述】:

我需要隐藏完整路径并很快显示:

www.site.com/this/is/path/to/hide/page.php --> www.site.com

有没有办法用 .htaccess apache重写规则??

示例
如果我输入 www.site.com 我想打开 index.php (in /),
但如果我去/hidden/path,我想打开file.php(在隐藏/路径中)
在 www.site.com 中维护浏览器 url


编辑
我想在浏览器栏中查看www.site.com,我想在/this/is/path/to/hide/page.php 打开页面。

谢谢

【问题讨论】:

  • 如果不使用 URL/URI,应该如何定位/识别该资源?
  • 没有。 如果我叫你的名字,你能满足我的要求吗?

标签: security apache .htaccess mod-rewrite


【解决方案1】:

正如我在How does url rewrite works? 中解释的那样,每次重写都会触发对重写 URL 的新调用。 (HTTP 3xx 代码)。

因此,客户端将请求www.site.com/this/is/path/to/hide/page.php,将被重定向到www.site.com,并将作为普通用户提供索引页面。

没有办法告诉客户端在浏览器栏中显示一个 URL 而不是另一个,客户端浏览器总是会发出新的请求。 (或者你可以冒充任何网站)

如果您不反对使用 cookie,或者可以使用环境变量,您可以执行以下操作:

RewriteRule this/is/path/to/hide/page.php / [co:knowHiddenPath=true] 

环境变量与E 的语法相同,而不是co

(有关 cookie 信息,请参阅 http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

然后,您的索引页面应检查此 cookie/变量是否为隐藏页面提供服务。

另一种解决方案是启用对文件的密码访问。因此,即使有人知道 URL,他也不会访问该文件。默默无闻的安全性是不存在的。

【讨论】:

    【解决方案2】:

    我相信你可以通过Alias 做到这一点,

    Alias / /this/is/path/to/hide/page.php
    

    这个指令需要在你的<VirtualHost>

    【讨论】:

    • 现在您唯一要显示的是文件:page.php是的,路径仍将被隐藏。
    • VirtualHost 不在 htaccess 中,对吗?我需要做什么样的文件?在哪里?
    【解决方案3】:

    这将使用 mod_rewrite,您可以将其放入您的 .htaccess

    # Activate Rewrite Engine
    RewriteEngine On
    
    # Home page rewrite rule
    RewriteRule ^$ /this/is/path/to/hide/page.php [QSA,L]
    

    这只有在你点击网站根目录时才有效(例如http://www.example.com/

    【讨论】:

    • @LazyOne 好的,但我需要完全相反!我去/hidden/path.php,我想看看www.mysite.com。谢谢。
    • @Paska “看到”是什么意思?您希望被重定向到根目录——例如您在浏览器中键入该路径,它会将您重定向到根目录,您在浏览器栏中只看到www.mysite.com?或者您希望该 URL 在地址栏中保持不变(与您键入时一样),但它会(在浏览器中)向您显示主页?
    • 对不起,我想在浏览器栏中查看 www.site.com 并且我想在 /hidden/path.php 处打开页面。
    • @Paska 所以你输入了www.site.com,但想看到www.site.com/hidden/path.php,浏览器应该保持原样。对吗?
    • @Paska 那样不行。它必须涉及其他事情。你不能仅仅通过 URL 重写来做你想做的事。不。也许你可以展示一些真实的例子(来自真实的网站),这样我就可以更好地了解你想要实现的目标,或许还可以向你解释他们是如何做到的?
    猜你喜欢
    • 2018-09-18
    • 2020-12-13
    • 1970-01-01
    • 2022-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 2013-04-19
    相关资源
    最近更新 更多