我正在尝试将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>
答案 0 :(得分:1)
您可以将DocumentRoot
更改为/var/www
并将.htaccess放在那里。该规则可能看起来像
RewriteRule ^files/(.*)$ /downloads/html/$1
但是,/var/www
以下的所有内容都可以公开访问。如果这不是一个选项(例如安全问题),您必须坚持使用PHP解决方案。