删除共享主机中子文件夹中的“/ web”

时间:2013-03-06 23:06:24

标签: .htaccess redirect symfony

我的域名下有一个包含sf2应用程序的子文件夹。访问该应用的实际网址如下: www.mydomain.com/subfolder/web

我想从网址中正确删除“/ web”。

我试图用我的subfoler中的htaccess做到这一点:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ web/$1 [QSA,L]
</IfModule>

重定向网络目录中的请求

但是当我想要使用此消息进入主页时它给了我404: “找不到'GET /子文件夹/'的路径

我知道我错过了什么,但我真的不知道什么,我真的不是htaccess的专家

PS:创建一个VirtualHost来解决问题是不可能的,因为我在共享主机上

2 个答案:

答案 0 :(得分:1)

我使用符号链接。

来自webroot: ln -s subfolder/web newfolder

答案 1 :(得分:0)

查看RewriteRule的文档 http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

您传递的第一个参数是匹配的模式

您基本上匹配子文件夹中的任何目录并将其重定向到 网/

我认为你想要的是这样的

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} ! ^subfolder/web.
RewriteRule ^subfolder(.*)$ subfolder/web/$1 [QSA,L]

所以我认为这样做如下:

  • 虽然请求不是文件,但不是子文件夹/ web或子文件夹/ web /
  • 将子文件夹(。*)$中的网址重写为子文件夹/ web / $ 1