【问题标题】:i want to redirect any url to www我想将任何网址重定向到 www
【发布时间】:2021-01-09 20:21:06
【问题描述】:

您好,我想将任何网站重定向到 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]

【问题讨论】:

  • HTTPS 通常在 443 端口
  • @Kosh 我知道你的意思是我应该将我在&lt;VirtualHost *:80&gt; 中写的 https 更改为 http 而不是 https 吗?我做了,但没有发生任何变化

标签: apache web url redirect


【解决方案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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    相关资源
    最近更新 更多