除 index.php 之外的所有 URL 的 Apache 别名

除 index.php 之外的所有 URL 的 Apache 别名

我在服务器上有两个文件夹。

/var/www/core
/var/www/instances/first

每个实例的入口点位于路径下/var/www/instances/first。有

  • index.php文件
  • config.php文件
  • uploads/文件夹

因此,服务器首先必须打开index.php文件,然后将所有请求转发到另一个文件夹/var/www/coreindex.php内容

// ... some code ... 
require '../../core/index.php';

据我所知,我必须使用 Alias 来实现目标。我有以下虚拟主机配置

<VirtualHost *:80>

ServerName first.com
ServerAlias www.first.com

DocumentRoot /var/www/instances/first/

Alias /uploads /var/www/instances/first/uploads/

<Directory /var/www/instances/first/>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Alias / /var/www/core/

<Directory /var/www/core/>
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

# Redirect from www to non-www
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

但使用此配置,我的所有 URL(包括第一个index.php)都会转发到文件夹。也许有人知道如何更改配置以防止“混叠”主index.php文件。

uploads/附言:需要文件夹的另一个别名并且它运行良好。

相关内容