.htaccess 将域重新定向到子域+;让它成为https

.htaccess 将域重新定向到子域+;让它成为https,.htaccess,ssl,https,hosting,web-hosting,.htaccess,Ssl,Https,Hosting,Web Hosting,这有点奇怪: 我需要我的网站做两件事(其中一件已经开始工作): 如果用户试图通过HTTP://访问该域,则会被https://替换-这是为了在谷歌中进行搜索引擎优化,并让用户感到更安全- 用于加载网站的网站文件夹必须是网站的子域文件夹 奇怪的是,第二部分工作正常,我发现了——但是我不确定如何合并这两个请求: HTACCESS RewriteEngine on RewriteCond %{HTTP_HOST} ^trippy\.co\.nz$ [NC,OR] RewriteCond %{HTT

这有点奇怪:

我需要我的网站做两件事(其中一件已经开始工作):

  • 如果用户试图通过HTTP://访问该域,则会被https://替换-这是为了在谷歌中进行搜索引擎优化,并让用户感到更安全-

  • 用于加载网站的网站文件夹必须是网站的子域文件夹

  • 奇怪的是,第二部分工作正常,我发现了——但是我不确定如何合并这两个请求:

    HTACCESS

    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^trippy\.co\.nz$ [NC,OR]
    RewriteCond %{HTTP_HOST} ^www\.trippy\.co\.nz$
    RewriteCond %{REQUEST_URI} !update.trippy.co.nz/
    RewriteRule (.*) /update.trippy.co.nz/$1 [L]
    
    但我不知道如何使网站显示为

    我试过:

    RewriteEngine On
    RewriteCond %{HTTP_HOST} update\.trippy\.co\.nz [NC]
    RewriteCond %{SERVER_PORT} 80
    RewriteRule ^(.*)$ https://update.trippy.co.nz/$1 [R,L]
    
    但随后网址显示为:

    我需要像你一样

    这里的任何帮助都会非常好,我知道这是一个奇怪的情况

    谢谢

    沃利

    …但随后网址显示为:
    https://update.trippy.co.nz

    您似乎正在重定向到子域本身,而不是子域的子目录,正如您在第一条规则中所做的那样。您还可能将指令按错误的顺序放置-外部重定向需要先进行-否则您将公开子域的子目录,这似乎不是您的意图

    请尝试以下操作:

    RewriteEngine On
    
    # Redirect HTTP to HTTPS
    RewriteCond %{HTTP_HOST} ^(www\.)?trippy\.co\.nz [NC]
    RewriteCond %{SERVER_PORT} 80
    RewriteRule (.*) https://%{HTTP_HOST}/$1 [R,L]
    
    # Rewrite all requests to the subdomain's subdirectory
    RewriteCond %{HTTP_HOST} ^(www\.)?trippy\.co\.nz [NC]
    RewriteRule !^update\.trippy\.co\.nz/ /update.trippy.co.nz%{REQUEST_URI} [L]
    
    第二个规则块中不需要额外的条件,因为可以直接在
    重写规则
    中执行检查,并使用
    请求URI
    服务器变量,而不是替换字符串中的
    $1
    反向引用


    R
    本身就是一个临时(302)重定向。您可能希望在确认此功能正常后将其更改为
    R=301
    (永久)。

    此功能100%正常工作,我需要它工作-非常感谢作为一个侧栏:对于在哪里学习编写HTACCESS,您有什么建议吗?这种特定的技能适合开发人员的角色吗?我正在尝试量化技能——再次非常感谢您的帮助,不客气。“学习编写htaccess”-作者:htaccess,您指的是mod_rewrite吗?我的goto资源是——尽管这可能不是每个人的爱好,
    。htaccess
    不是唯一的mod_重写。Apache配置涵盖了一系列规则,但我要说的是
    .htaccess
    是开发人员/程序员的领域。它是userland代码库的一部分,可以随应用程序一起分发。我是一名web开发人员,我使用
    .htaccess
    作为应用程序开发(和SEO)的一部分。我看到其他人引用了Rich Bowen的“Apache mod_rewrite”——尽管我自己没有读过。据我所知,它是在2006年发布的(似乎比Apache2.2早),从那以后就没有更新过?(从那以后事情有了一些变化。)好的,这给了我一些开始研究的建议,所以谢谢你:不要让这个问题拖到你的答案非常有用的时候,但是我可以问一下,当你提到调整你的HTACCSES进行SEO时,是不是通过使用HTACCSES缓存你的网站内容?我一直在寻找如何做到这一点,但我画的是一个空白,指针(或者只是,可以用htacses做什么将是惊人的)-“搜索引擎优化相关”可能更准确。是的,这可能包括浏览器缓存。以及URL重写(漂亮的URL)、规范重定向(和/或设置rel=canonical headers)、内容迁移重写/重定向、设置其他HTTP响应头,如X-Robots-Tag(与索引相关)。显然,您可以在应用程序中执行其中的一些操作,而这样做可能更可取。使用mod_expires(
    ExpiresByType
    等)更容易管理浏览器缓存-这将根据响应的mime类型为您设置适当的HTTP响应头。