将ReRriteRule改为绝对路径?

时间:2014-11-01 07:59:30

标签: .htaccess mod-rewrite redirect url-rewriting apache2

我正在尝试将RewriteRule重定向到当前目录之外的服务器上的绝对路径。这在PHP中正确实现时有效(即没有权限问题),但对于.htaccess,它不会:

RewriteEngine On
RewriteRule ^files/(.*)$ /var/www/files/html/$2

这是一个例子。想象一下.htaccess文件位于/var/www/downloads/html并重定向到另一个位置。就像我说的那样,这是一个例子,在这种情况下没有意义。

这可能不起作用,因为我认为它会重定向到/var/www/files/html/var/www/downloads/html

问题:如何让RewriteRule指向当前目录之外的目录?

更新:此网站的VirtualHost为:

<VirtualHost *:80>
    ServerName subdomain.domain.com
    DocumentRoot /var/www/files/html
</VirtualHost>

1 个答案:

答案 0 :(得分:1)

您可以将DocumentRoot更改为/var/www并将.htaccess放在那里。该规则可能看起来像

RewriteRule ^files/(.*)$ /downloads/html/$1

但是,/var/www以下的所有内容都可以公开访问。如果这不是一个选项(例如安全问题),您必须坚持使用PHP解决方案。

相关问题