我需要隐藏完整路径并立即显示:
www.site.com/this/is/path/to/hide/page.php
--> www.site.com
有什么想法可以使用 .htaccess apache 和重写规则吗?
示例:
如果我输入 www.site.com
我想打开 index.php
(在/中),
但如果我去 /hidden/path
我想打开 file.php
(在隐藏/路径中)
维护 www.site.com 中的浏览器 URL。
编辑:
我想在浏览器栏中看到 www.site.com
并且我想打开 /this/is/path/to/hide/page.php
页面。
谢谢
最佳答案
正如我在: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,他也不会访问该文件。默默无闻的安全性是不存在的。
关于security - 重写规则以隐藏 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486014/