代码之家  ›  专栏  ›  技术社区  ›  Sara44

使用ssl和文件扩展名rewrite对非www的htaccess

  •  0
  • Sara44  · 技术社区  · 7 年前

    我有一个重写.php文件扩展名的网站,因此: http://example.com/about.php 变成 http://example.com/about

    我还将www.domain.com重定向到非www.

    现在我要把它移到ssl,所以我想保留这两个规则,并将其全部重定向到https。

    以下是我目前拥有的:

    # Redirect to non www version
    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www.example.com
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
    RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteRule (.*) https://example.com/ [R=301,L]
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
    RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteRule ^index.php / [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
    RewriteRule ^(.*)$ $1.php
    ErrorDocument 404 /404.php
    

    在没有太多重定向的情况下,我如何做到这一点?提前谢谢!

    1 回复  |  直到 7 年前
        1
  •  1
  •   wp78de    7 年前

    试试这个:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} ^www\. [NC,OR]
    RewriteCond %{HTTPS} off
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
    RewriteCond %{REQUEST_URI} !^/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
    RewriteRule ^ https://%1%{REQUEST_URI} [R=302,L,NE] 
    
    RewriteRule ^index.php / [L,R=301]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteCond %{REQUEST_URI} !^/[0-9]+\..+\.cpaneldcv$
    RewriteRule ^(.*)$ $1.php
    ErrorDocument 404 /404.php