【问题标题】:htaccess redirect from http to https + GET paramhtaccess 从 http 重定向到 https + GET 参数
【发布时间】:2016-05-18 12:56:24
【问题描述】:

我正在尝试编辑我的 .httaccess 配置。我想将所有想法重定向到 https,但如果我尝试这个,我在 stackoverflow 上发现了什么:

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

它不会重定向。

现在我的 .htaccess 看起来像:

RewriteEngine On

# ignore all existing files and directories for rewriting     
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

RewriteRule ^([\d+^/]*)$ /index.php?id=$1 [QSA,L]
RewriteRule ^([\w+^/]*)$ /index.php?name=$1 [QSA,L]

重写规则如:

^([\d+^/]*)$ /index.php?id=$1 [QSA,L] 

如果我愿意,工作得很好

  • www.mydomain.com/523

好像

  • www.mydomain.com/index.php?id=523

那么我怎样才能附加我的代码来重定向 http:// 到 https:// 并且我的旧重写规则仍然有效?

【问题讨论】:

    标签: .htaccess redirect mod-rewrite https


    【解决方案1】:

    试试:

    RewriteEngine On
    RewriteCond %{HTTPS} !on
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI [NE,L,R]
      # ignore all existing files and directories for rewriting     
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule ^([\d+^/]*)$ /index.php?id=$1 [QSA,L]
    RewriteRule ^([\w+^/]*)$ /index.php?name=$1 [QSA,L]
    

    【讨论】:

    • 它不起作用。如果我写 url www.mydomain.com nothink 发生并且它清除了浏览器上的 url 输入(没有任何错误或重定向)
    • @Michal 输入网址时究竟发生了什么?我已经在我的服务器上测试了这些规则并且它有效。
    • 我在浏览器中输入我的 url,按回车键,然后浏览器清除 url 输入,但没有发生任何事情(我仍然看到带有书签的默认浏览器页面)
    • 现在我看到第三行错误(结束 })如果我现在更正它并清除缓存,我的浏览器会写道,这个页面有太多重定向
    【解决方案2】:

    我已经为 GET 参数解决了这个问题:

    RewriteEngine On
    
    # ignore all existing files and directories for rewriting     
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    
    RewriteRule ^([\d+^/]*)$ https://%{HTTP_HOST}/index.php?id=$1 [QSA,L]
    RewriteRule ^([\w+^/]*)$ https://%{HTTP_HOST}/index.php?name=$1 [QSA,L]
    

    但我无法解决主页和所有其他页面的问题。我正在使用 JS location.replace 代替。如果有人知道如何设置 .htaccess 来同步执行这些操作:

    • 将每个文件重定向到 https
    • 以及主页 (example.com/63) 上斜线后的所有数字和单词重定向到 https://%{HTTP_HOST}/index.php?id=$1(作为 GET 参数)

    【讨论】:

      猜你喜欢
      • 2017-07-18
      • 1970-01-01
      • 2019-04-11
      • 1970-01-01
      • 2014-04-16
      • 2012-11-02
      • 2018-08-25
      • 1970-01-01
      相关资源
      最近更新 更多