RewriteRule用于父目录中的文件

时间:2013-11-28 14:46:36

标签: apache .htaccess mod-rewrite

我在apache服务器上设置了一个站点,其中桌面站点位于/ public_html,移动站点位于public_html / mob

我正在尝试设置.htaccess rewriterule,以便在用户访问/ mob文件夹时将用户发送到/ public_html中的index.php文件。我目前的重写规则,在mob子文件夹中是:

RewriteRule ^(/)?$ ../index.php

我可以使用:

在mob子目录中加载相同的文件
RewriteRule ^(/)?$ index.php

但是我似乎无法让网站从父目录(public_html)加载index.php文件。

尝试在我收到的浏览器中加载http://www.domain.com/mob时:

Bad Request

Your browser sent a request that this server could not understand.

这个重写程序在我们的开发服务器上运行良好,但在我们的实时环境中不起作用。

/ public_html / mob文件夹中的.htaccess文件如下:

Options +FollowSymLinks
RewriteEngine on

RewriteRule ^(/)?$ ../index.php [L,QSA]

当达到index.php时,移动设备检测脚本会决定是从桌面还是移动网站加载内容。

2 个答案:

答案 0 :(得分:4)

  • 检查DOCUMENT_ROOT。{/ li>的m.domain.com

如果DOCUMENT_ROOT的{​​{1}}为m.domain.com,那么在未对/public_html/mob进行完全重定向(或代理)的情况下无法加载/public_html/index.php

  • 只是为了澄清任何网站都无法访问其http://domain.com/index.php文件夹级别以上的文件。

答案 1 :(得分:1)

如果您的规则的目标以/开头,则使其成为从文档根开始的绝对URI,我假设它是public_html文件夹:

RewriteRule ^(/)?$ /index.php