gpt4 book ai didi

.htaccess - Apache 将所有 URL 重写为 https,但有 www + 一些异常(exception)

转载 作者:太空宇宙 更新时间:2023-11-03 12:56:01 24 4
gpt4 key购买 nike

我已经尝试了类似堆栈问题的所有答案,但没有任何效果。我需要将所有重定向到 https://www除了 example.com/blogs/* 和 example.com/page-name。

我目前有这个:

RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
RewriteCond %{http_host} ^example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]

重定向除https://example.com 之外的所有内容, 它不会添加 www.

您可以在 https://moblized.com 上亲自查看

RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteRule ^(.*)$ https://www.moblized.com/$1 [R=301,L]
RewriteCond %{http_host} ^moblized.com [NC]
RewriteRule ^(.*)$ https://www.moblized.com/$1 [R=301,L]

RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} blogs
RewriteRule ^(.*)$ http://moblized.com/blogs/$1 [R,L]

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
</IfModule>

# $Id: .htaccess,v 1.90.2.4 2009/12/07 12:00:40 goba Exp $

AddHandler php5-script .php

谢谢!

最佳答案

希望我理解正确。你想要:

  • example.com 重定向到 www.example.com(/blogs/和/page-name 除外)
  • 将所有页面重定向到 HTTPS(/blogs/和/page-name 除外)
  • 根据您当前在 /page-name 下的 .htaccess,您的意思是 /favicon.ico

以下是上述要求的规则——将它们放入您的 .htaccess 中:

# activate rewrite engine
RewriteEngine On

# don't touch favicon.ico (always accept as is regardless of the domain or protocol)
RewriteRule ^favicon.ico$ - [L]
# don't touch /index.php (usually means already overwritten URL)
# otherwise we may enter into a loop
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^index\.php$ - [L]

# ensure trailing slash is present for /blogs -> /blogs/
RewriteRule ^blogs$ http://mobilized.com/blogs/ [R=301,QSA,L]
# /blogs/ should only be accessible via http://example.com/blogs/
RewriteCond %{HTTP_HOST} !^moblized\.com$ [NC]
RewriteRule ^blogs/(.*)$ http://mobilized.com/blogs/$1 [R=301,QSA,L]
RewriteCond %{HTTP_HOST} ^moblized\.com$ [NC]
RewriteCond %{HTTPS} =on
RewriteRule ^blogs/(.*)$ http://mobilized.com/blogs/$1 [R=301,QSA,L]
RewriteRule ^blogs/.* - [L]

# redirect to www.example.com if necessary
RewriteCond %{HTTP_HOST} ^moblized\.com$ [NC]
RewriteCond %{REQUEST_URI} !=/client-ipad-contest
RewriteRule ^(.*)$ https://www.moblized.com/$1 [R=301,QSA,L]

# redirect to HTTPS if not there already
RewriteCond %{HTTPS} !=on
RewriteCond %{REQUEST_URI} !=/client-ipad-contest
RewriteRule ^(.*)$ https://www.moblized.com/$1 [R=301,QSA,L]

# Rewrite URLs of the form 'x' to the form 'index.php?q=x'.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA]

顺便说一句,如果您的客户转到 https://example.com,浏览器很可能会显示“不受信任的证书”警告。这是因为在 Apache 的重写模块开始处理请求之前,必须首先完全建立 HTTPS session 。

如果这是问题——那么考虑购买另一个 SSL 证书(或从其他供应商处购买),该证书将涵盖 example.comwww.example.com (GoDaddy肯定会这样做)或获得将涵盖所有子域的通配符证书 -- *.example.com(但这很可能会更昂贵)。


更新:在本地模拟您的要求后(抱歉,我没有使用 Apache 的 SSL,所以我已经(在我的测试中)用不同类型的规则/域名替换了它)我修改了并更新了规则。

我已经在本地测试了这些规则(所有页面都非常简单,仅包含 1 张图片和 CSS 以及一些文本)——一切看起来都不错。如果有什么不对,请告诉我。

关于.htaccess - Apache 将所有 URL 重写为 https,但有 www + 一些异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6432765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com