1

我的域上有一个包含 sf2 应用程序的子文件夹。访问应用程序的实际 url 是这样的:www.mydomain.com/subfolder/web

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

我试图在我的子文件夹中使用这个 htaccess 来做到这一点:

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

在 web 目录中重定向请求

但是当我想用这条消息进入主 URL 时,它给了我一个 404: “找不到'GET /subfolder/'的路由”

我知道我错过了一些东西,但我真的不知道是什么而且我真的不是 htaccess 专家

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

4

2 回答 2

1

我使用符号链接。

从网络根: ln -s subfolder/web newfolder

于 2013-03-07T00:02:28.277 回答
0

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

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

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

我想你想要的是这样的

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

所以我认为这样做是:

  • 虽然请求不是文件,也不是 subfolder/web 或 subfolder/web/
  • 将 url 从 subfolder(.*)$ 重写为 subfolder/web/$1
于 2013-03-06T23:12:25.427 回答