![虛擬主機設定將請求重定向到本機 IP 位址](https://rvso.com/image/756266/%E8%99%9B%E6%93%AC%E4%B8%BB%E6%A9%9F%E8%A8%AD%E5%AE%9A%E5%B0%87%E8%AB%8B%E6%B1%82%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E6%9C%AC%E6%A9%9F%20IP%20%E4%BD%8D%E5%9D%80.png)
我想讓一個在 apache2 (ubuntu) 上運行的應用程式可以透過網路存取。所以我決定在購買SSL憑證後設定虛擬主機。在我的本地網路上一切正常。
當我訪問 172.16.2.28/moodle (在本地網路上)時,一切正常。
當我也訪問 example.com 時,我會收到來自 (/var/www/html) 的預設 index.php
但當我透過公共網路造訪 example.com/moodle 時,瀏覽器會重新導向到 172.16.2.28/moodle (錯誤 404)
我究竟做錯了什麼。
-
000-預設.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
預設-ssl.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin [email protected]
ServerName lms.xxx.com
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /home/vlms/sslcert/cert.pem
SSLCertificateKeyFile /home/vlms/sslcert/cert.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
<Directory /var/www/html/>
Options +FollowSymlinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
</IfModule>
Moodle/config.php(問題可能出在這裡嗎?)
<?php // Moodle configuration file
unset($CFG);
global $CFG;
$CFG = new stdClass();
$CFG->dbtype = 'mariadb';
$CFG->dblibrary = 'native';
$CFG->dbhost = '172.16.0.30';
$CFG->dbname = 'xxx';
$CFG->dbuser = 'xxx';
$CFG->dbpass = 'xxx';
$CFG->prefix = 'mdl_';
$CFG->dboptions = array (
'dbpersist' => 0,
'dbport' => '',
'dbsocket' => '',
'dbcollation' => 'utf8mb4_general_ci',
);
$CFG->wwwroot = 'http://172.16.0.30/moodle';
$CFG->dataroot = '/var/www/moodledata';
$CFG->admin = 'xxx';
$CFG->directorypermissions = 0777;
require_once(__DIR__ . '/lib/setup.php');
// There is no php closing tag in this file,
// it is intentional because it prevents trailing whitespace problems!
答案1
Moodle 會準確地重新導向您的配置方式:
$CFG->wwwroot = 'http://172.16.0.30/moodle';
將該行更改為正確的 URL:
$CFG->wwwroot = 'https://example.com/moodle';