我无法通过.htaccess隐藏重定向网址中的子文件夹

时间:2013-10-02 22:19:22

标签: php .htaccess mod-rewrite redirect

我在这里看到了一些解决方案,但他们没有帮助我。 我的index.php在这里:http://localhost/basic-2/web/index.php

我想说明如果我输入http://localhost/basic-2,浏览器会将我重定向到http://localhost/basic-2/web/index.php路径,但在浏览器中,该网址为http://localhost/basic-2/index.php地址。 所以我想从网址中删除(或隐藏)web子文件夹。

我在这里看到了许多解决方案......但没有:(,现在我有了这个:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/web/$1 -f [NC]
RewriteRule ^([^/]+)$ /web/$1 [P,L,QSA]

但这仅列出文件夹和文件...而不是重定向到子文件夹。

这可以重定向,但不会隐藏URL中的web文件夹。

RewriteEngine On
RewriteRule ^$ web [L]

EDIT1 我找到了另一条规则:

RewriteEngine On
RewriteRule ^$ web/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ web/$1

这可以重定向!但此规则不会隐藏(或删除)web文件夹仍然...

1 个答案:

答案 0 :(得分:0)

尝试类似:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /basic-2/

RewriteCond %{DOCUMENT_ROOT}/basic-2/web/$1 -f [NC]
RewriteRule ^(.*)$ web/$1 [P,L,QSA]

RewriteCond %{THE_REQUEST} \ /basic-2/web/([^\?\ ]*)
RewriteRule ^ /basic-2/%1 [L,R=301]