Я установил новый виртуальный хост для нового сайта на моем сервере, но он работает странно, несмотря на то, что он имеет те же настройки, что и мой исходный сайт.
Я хочу, чтобы все запросы были перенаправлены на HTTPS, проще говоря. На моем основном (рабочем) сайте это указано в конфигурации VirtualHost
, а в .htaccess
указано дополнительное правило, разрешающее короткие URL-адреса. В частности, проблема на нерабочем сайте состоит в том, что если я пытаюсь перейти на example.com/url
, перенаправление переходит на https://example.comurl
и удаляет необходимые /
из URL.
Я скопировал точную конфигурацию в новый файл VirtualHost
и .htaccess
с рабочего сайта, поэтому я не уверен, почему он не работает на новом. Все мои DNS-записи для обоих сайтов используют записи A, чтобы указывать на него, никаких перенаправлений или чего-либо еще не происходит на уровне DNS. Я попытался поставить /
в конце строк Redirect
в приведенном ниже коде, но проблема не была решена. Сервер Ubuntu 14.04, и Apache версии 2.4.7. Оба сайта представляют собой отдельные доменные имена с отдельными файлами .conf
, но они размещены на одном сервере с одинаковым IP-адресом. Как я могу исправить эту проблему?
Соответствующий код в VirtualHost
:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com
</VirtualHost>
И в .htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
В случае, если это помогает / имеет значение, это конфигурация SSL в моем файле VirtualHost, хотя она находится в самом начале файла вне всех других директив:
SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
И это конфиг специально для VirtualHost
для сайта:
<VirtualHost *:443>
ServerName example.com
ServerAdmin user@example.com
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/errorexample.log
Options -Indexes
SSLEngine on
SSLCertificateFile /etc/ssl/example/examplecert.crt
SSLCertificateKeyFile /etc/ssl/example/examplekey.key
SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>