如果我有网站(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重写就是这样做的。。。。
在根目录中,我有一个
index.php
文件,该文件将站点重定向到www.example.com/folder-1/folder-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>
。这就是在这种情况下防止重写循环的原因。