使用.htaccess隐藏子文件夹



如果我有网站(www.domain.com(

在根目录中,我有一个index.php文件,它将网站重定向到www.domain.com/folder-1/folder-2/

如何使用.htaccess从地址栏中的URL隐藏文件夹-1/文件夹-2/?

(将站点文件从文件夹-2移动到站点根目录不是一种选择。(

我试过这个:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(/folder-1/folder-2)
RewriteRule (.*) /folder-1/folder-2$1

但是我得到了这个错误:

This page isn’t working
domain.com redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS

我也试过:

RewriteEngine On
RewriteRule ^/(.*)$   /folder-1/folder-2/$1

但它对没有任何影响

我也尝试过:

RewriteEngine On
RewriteRule ^folder-1/folder-2$ /?&%{QUERY_STRING}

但它对没有任何影响

引用自mediatemple.net/community/products/dv/204643270/……"将对一个子目录的请求直接发送到不同的子目录或主目录(文档根目录(示例:Example.com/folder1变成Example.com/folder 2或只是Example.com;

是的,URL重写就是这样做的。。。。

  1. 在根目录中,我有一个index.php文件,该文件将站点重定向到www.example.com/folder-1/folder-2/

  2. 如何使用.htaccess从地址栏中的URL隐藏folder-1/folder-2/

这是一个矛盾。为了";隐藏";地址栏中的/folder-1/folder-2/,您需要再次将请求重定向回根目录!不用说,这并没有什么意义(除了"不可能"(。

通过URL重写,您可以在内部将请求从/folder-1/folder-2/重写回根目录(或者更确切地说,在根目录中重写回index.php(。但这并不是";隐藏";任何东西

例如,要在文档根目录中将请求/folder-1/folder-2/(如前所述(重写回/index.php,则需要执行以下操作:

RewriteEngine On
RewriteRule ^folder-1/folder-2/$ /index.php [L]

请求的URL/folder-1/folder-2/保留在浏览器的地址栏中。它不是";隐藏";。

你发布的指令暗示你有/folder-1/folder-2/<something>表格的请求——然而,你没有在问题描述中说明这一点?

RewriteCond %{REQUEST_URI} !^/(/folder-1/folder-2)
RewriteRule (.*) /folder-1/folder-2$1

您发布的指令试图做完全相反的事情,并将请求从根重写到/folder-1/folder-2-也许这就是您真正想要做的?然而,这也将绕过";将站点重定向到CCD_ 14"的CCD_;(如上文#1所述(。这两种行为相冲突。

要在内部直接将文档根目录中的所有URL请求重写为/folder-1/folder-2/,则需要执行以下操作:

RewriteEngine On
Rewrite ^([^/]+)$ /folder-1/folder-2/$1 [L]

这假设所请求的URL的形式为/<file>,其中<file>仅为1个路径深度。即不是/<dir>/<file>。这就是在这种情况下防止重写循环的原因。

最新更新