я хочу перенаправить любой URL на www

#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>