#apache #web #url #redirect
#apache #веб #url #перенаправление
Вопрос:
Привет, у меня проблема с тем, что я хочу перенаправить любой веб-сайт, чтобы https://www.something.com/en/
я это сделал, но если кто-нибудь напишет https://something.com/en/
, что он не перенаправляет https://www.something.com/en/
, мне нужно перенаправить любого, если написать https://something.com/en/
https://www.something/en/
.
мой файл apache conf :
<VirtualHost *:80>
ServerName something.com
ServerAlias www.something.com
DocumentRoot /var/www/html/something.com/public
Redirect permanent / https://www.something.com
</VirtualHost>
файл .htaccess :
RewriteCond %{HTTP_HOST} ^[^.] .[^.] $
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
и я тоже попробовал это :
RewriteEngine On
RewriteCond %{HTTP_HOST} *.something.com [NC]
RewriteRule ^(.*)$ https://www.something.com/$1 [L,R=301]
Комментарии:
1. Обычно HTTPS находится на 443-м порту
2. @Kosh я знаю, что хорошо, ты имел в виду, что я должен изменить https, который я написал, на
<VirtualHost *:80>
http, а не на https? я сделал, но никаких изменений не произошло
Ответ №1:
Попробуйте этот:
<VirtualHost *:80>
ServerName www.something.com
ServerAlias something.com
RewriteEngine on
RewriteCond %{SERVER_NAME} =www.something.com [OR]
RewriteCond %{SERVER_NAME} =something.com
RewriteRule ^ https://www.something.com%{REQUEST_URI} [END,QSA,R=301]
</VirtualHost>
<VirtualHost *:443>
ServerName www.something.com
ServerAlias something.com
DocumentRoot /var/www/html/something.com/public
# Here goes your SSL keys and options:
#SSLCertificateFile /etc/ssl/www.something.com/cert.pem
#SSLCertificateKeyFile /etc/ssl/www.something.com/privkey.pem
#Include /etc/ssl/options-ssl-apache.conf
#SSLCertificateChainFile /etc/ssl/www.something.com/chain.pem
RewriteEngine on
RewriteCond %{SERVER_NAME} =something.com
RewriteRule ^ https://www.something.com%{REQUEST_URI} [END,QSA,R=301]
</VirtualHost>