Mod-Rewrite加载DocumentRoot后面的文件

Cha*_*son 13 .htaccess mod-rewrite

我正在使用.htaccessmod_rewrite指向位于DocumentRoot后面的文件.我的文件夹结构如下所示:

home/
    webroot/
    other_files/
Run Code Online (Sandbox Code Playgroud)

.htaccess在webroot中有一个文件,其中包含以下内容:

RewriteEngine on
RewriteRule ^(.*)$ /home/other_files/$1

如果我尝试访问http://example.com/file.html,则会收到以下错误消息:

在此服务器上找不到请求的URL /home/other_files/file.html.

甚至可以加载DocumentRoot后面的文件吗?如果是这样,有人能指出我正确的方向吗?

Rya*_*arn 13

我相信你需要添加一个部分

<Directory "/home/other_files">
  (options)
</Directory>
Run Code Online (Sandbox Code Playgroud)

在apache能够从中提供任何服务之前,您的服务器配置.例如,我的DocumentRoot是/ var/www,但默认的可用站点中有此部分:

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
    Options Indexes MultiViews FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
Run Code Online (Sandbox Code Playgroud)

然后,您可以重写URL以转至/ doc /,服务器将知道从何处获取文件.