所以我不知道这种设置是怎么称呼的,所以我很难用谷歌搜索并看看我是否朝着正确的方向前进。
我目前拥有的
我有一个带有虚拟主机的 CMS www.example.com
,它的管理界面位于子域下admin.www.example.com
。
我需要的
现在,除了 CMS 之外,我还需要建立一个论坛平台。我希望它是这样设置的
www.example.com
-> 内容管理系统www.example.com/advice
-> 论坛
使用 Apache 可以实现这样的设置吗?
细节
我在 centos7 上运行 apache 2.4.6。
我当前的虚拟主机如下
<VirtualHost *:80>
ServerName example.com
DocumentRoot /www/example.com
SetEnv ADMIN_DOMAIM 0
<Directory "/www/example.com>
AllowOverride All
Options FollowSymLinks
</Directory>
php_value mbstring.func_overload 0
DirectoryIndex index.php
</VirtualHost>
<VirtualHost *:80>
ServerName admin.example.com
DocumentRoot /www/example.com
SetEnv ADMIN_DOMAIN 1
<Directory /www/example.com>
AllowOverride All
Options FollowSymLinks
</Directory>
php_value mbstring.func_overload 0
DirectoryIndex index.php
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SetEnv ADMIN_DOMAIN 0
ServerName example.com
DocumentRoot /www/example.com
<Directory /www/example.com>
AllowOverride All
Options FollowSymLinks
</Directory>
php_value mbstring.func_overload 0
DirectoryIndex index.php
</VirtualHost>
<VirtualHost *:443>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
SetEnv ADMIN_DOMAIN 1
ServerName admin.example.com
DocumentRoot /www/example.com
<Directory /www/example.com>
AllowOverride All
Options FollowSymLinks
</Directory>
php_value mbstring.func_overload 0
DirectoryIndex index.php
</VirtualHost>
答案1
只需在 DocumentRoot(在您的情况下为 /www/example.com)内创建一个名为“advice”的目录,然后在那里安装论坛平台。
另外,为了让 CMS 忽略该目录,您需要将以下内容添加到位于建议内的 .htaccess 中RewriteCond %{REQUEST_FILENAME} !-d