![向 uri 添加虚假子目录](https://linux22.com/image/720395/%E5%90%91%20uri%20%E6%B7%BB%E5%8A%A0%E8%99%9A%E5%81%87%E5%AD%90%E7%9B%AE%E5%BD%95.png)
使用 Composer 安装 Drupal 8 时,默认安装会移动到子目录/web
。
当访问 apache 2.3 的根页面时http://example.com
会出现 403 错误,但是当访问http://example.com/web
相应的子页面时一切正常。
关于如何将其映射到根目录有很多指南,这或多或少是一个设置正确的问题DocumentRoot
。我正在使用这个虚拟主机:
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html/web
<Directory /var/www/html/web>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
但是我想在不改变默认文件结构的情况下添加另一个虚假子目录。
例如,路径http://example.com/fakesubdir/admin/config
应该按预期工作,http://example.com/admin/config
并且http://example.com/
应该抛出 403。
我尝试过更改 DocumentRoot、添加别名和更改各种重写规则,但所有这些似乎都试图指向文件在主机上的位置。我不知道如何对 uri 进行明显的更改。
我发现了一些需要$base_url
在 settings.php 中进行更改的指南,但是这种方法在 drupal 8 中似乎已被弃用。
我也看过这个问题,但那里的答案建议将文件移动到另一个位置,我不想要这样做,因为我想保留/web
由作曲家创建的默认目录以避免出现许多其他问题。
我如何添加这个虚假子目录?