为了提高我的服务器的安全性,我只为admin创build了一个子域名,比如admin.domain.tld
,通常我只通过admin.domain.tld/mysqladmin
访问phpmyadmin,就像在configuration文件中一样:
<VirtualHost *:80> ServerName admin.domain.tld Alias /mysqladmin /usr/share/phpMyAdmin/ <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 AllowOverride All [...] </VirtualHost>
现在我已经有一个子域我想要SSL安全它,因为我需要configuration一个虚拟主机或类似的东西(我使用certbot aka让我们encryption),但是因为我必须configuration一个虚拟主机,我决定创build一个pipe理员只有在admin.domain.tld
包含链接到我的pipe理页面,如phpmyadmin,joomlapipe理页面等html页面…
configuration文件:
ServerName admin.domain.tld DocumentRoot /var/www/admin.domain.tld ErrorLog /var/log/httpd/admin.domain.tld/error.log <Directory /var/www/admin.domain.tld> Options FollowSymLinks Indexes AllowOverride All </Directory>
但现在当我去admin.domain.tld/mysqladmin
我得到一个错误:
The requested URL /mysqladmin/ was not found on this server.
所以,我怎么能这样工作:
admin.domain.tld是/var/www/admin.domain.tld
和
admin.domain.tld / mysqladmin是phpmyadmin
编辑:我想我的问题是别名不工作,所以当我去admin.domain.tld它显示/var/www/admin.domain.tld/mysqladmin而不是/ usr /共享/ phpMyAdmin
你正在第一个configuration中做一个循环。 您将别名发送到同一个根目录,因此在调用别名时将显示相同的根目录。 在这种情况下,你需要在/usr/share/phpMyAdmin/
上有一个mysqladmin
文件夹。
尝试在两个configuration文件中使用/var/www/admin.domain.tld
作为根目录,所以别名mysqladmin
将转发到phpmyadmin
。
我设法通过将phpmyadmin虚拟主机的内容与admin.domain.tld的内容放在一起来解决我的问题。 喜欢这个:
<VirtualHost *:80> ServerName admin.domain.tld DocumentRoot /var/www/admin.domain.tld ErrorLog /var/log/httpd/admin.domain.tld/error.log <Directory /var/www/admin.domain.tld> Options FollowSymLinks Indexes AllowOverride All </Directory> Alias /mysqladmin /usr/share/phpMyAdmin <Directory /usr/share/phpMyAdmin/> AddDefaultCharset UTF-8 AllowOverride All [...] </VirtualHost>