Я домен, который использует 2 отдельных VirtualHost файлов: один для: 80 и один для: 443Apache2 переписывать правила не подхватили
The: установка 80 довольно легко, это только работа для перенаправления до: 443:
<VirtualHost *:80>
# This is the first host so it's the default.
# So although I've specified a ServerName and ServerAlias anything else not specified elsewhere will also end up here.
ServerName www.domain.com
ServerAlias domain.com
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# Redirect everything to https:
RewriteEngine on
RewriteRule ^(.*)$ https://www.domain.com$1 [R=301,L]
</VirtualHost>
The: 443 просто нужно добавить WWW в начале URL, если он отсутствовал:
<VirtualHost *:443>
# This is the first host so it's the default.
# So although I've specified a ServerName and ServerAlias anything else not specified elsewhere will also end up here.
ServerName www.domain.com
ServerAlias domain.com
ErrorLog ${APACHE_LOG_DIR}/ssl.error.log
CustomLog ${APACHE_LOG_DIR}/ssl.access.log combined
# Redirect everything which is not already on the real www domain name to that:
RewriteEngine on
RewriteCond %{HTTP_HOST} !www.domain.com
RewriteRule ^(.*)$ https://www.domain.com$1 [R=301]
ErrorDocument 404 /404.html
</VirtualHost>
Я 1 случай, в котором эти Перезапись, кажется, не в состоянии:
https://domain.com -> должен указывать на https://www.domain.com, но он указывает на https://www.domain.com%24/#. Очевидно, что символы на задней панели не позволяют DNS-серверу найти домен.
В чем причина этой проблемы? Я уже помог создать эти файлы virtualhosts, но кажется, что они все еще не работают должным образом.
НО Я также хочу переписать свои URL-адреса на более приятные. Я думаю, что мое правило является правильным и блок Rewrite в: 443 выглядит следующим образом
RewriteEngine on
RewriteCond %{HTTP_HOST} !www.domain.com
RewriteRule ^(.*)$ https://www.domain.com$1 [R=301]
RewriteRule ^subpage/(.+)/?$ subpage.html?$1 [NC]
Который должен переписать
https://www.domain.com/subpage/2 ->https://www.domain.com/subpage.html?2, но это просто указывая на мой 404-файл Теперь.
Это может быть что-то очевидное, но я не вижу своей ошибки.