htaccess无法使用virtualdocumentroot

时间:2017-07-15 22:52:45

标签: apache .htaccess virtualhost

我希望在不更改虚拟主机的情况下更改一个项目的根目录,但忽略我的htaccess

我的虚拟主机配置

/etc/apache2/sites-available/localhost.conf

RewriteEngine on
RewriteBase /build

和我的htaccess

/var/www/test/.htaccess

<VirtualHost *:80>
   ServerAdmin email@example.com
   UseCanonicalName Off
   ServerAlias *.localhost
   VirtualDocumentRoot /var/www/%-2
   <Directory /var/www/*>
      Options FollowSymLinks
      AllowOverride All
   </Directory>
   ErrorLog /var/log/apache2/localhost-error.log
   LogLevel warn
   CustomLog /var/log/apache2/localhost-access.log combined
</VirtualHost>

解决

我找到了解决方案

RewriteEngine on
RewriteBase !^build/ /build%{REQUEST_URI} [L]

和htaccess

.row {
  width: 100%;
  margin: 15% auto;
  height: 100vh!important;
}

现在test.localhost以root身份使用/ var / www / test / build:)

1 个答案:

答案 0 :(得分:1)

   <Directory /var/www/%-2>

你只能在mod_vhost_alias提供的指令中使用这种类型的变量,而不能在任何其他指令中使用。

RewriteEngine on
RewriteBase /build

如果这是完整的,这实际上并没有做任何事情。要查看文件是否被忽略,请向其中添加一些无意义的字符,并确保它返回ISE 500错误。