重写规则以隐藏网址

时间:2011-06-26 18:52:11

标签: security apache .htaccess mod-rewrite

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

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上保留浏览器网址


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

感谢

3 个答案:

答案 0 :(得分:2)

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

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

无法告诉客户端在浏览器栏中显示一个URL而不是另一个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,他也不会访问该文件。默默无闻的安全是不存在的。

答案 1 :(得分:0)

我可以相信Alias

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

此指令必须位于<VirtualHost>

答案 2 :(得分:0)

这将使用 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/

,这只会起作用