【问题标题】:HTTPS Redirect Breaks Rewrite RuleHTTPS 重定向会破坏重写规则
【发布时间】:2018-11-14 22:02:42
【问题描述】:

我在试图理解我的重定向到底发生了什么时遇到了一些麻烦。

这很好用:

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

# redirect to http subdomain
RewriteCond %{HTTPS} on
RewriteRule (.*) http://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^www\.m\.pets4you\.com$ [NC]
RewriteRule ^(.*)$ http://m.pets4you.com/$1 [L,R=301]


##################################
RewriteRule ^dogs/(.*).htm?$ breeds.php?page=$1 [L]
RewriteRule ^cats/(.*).htm?$ breeds.php?page=$1 [L]
RewriteRule ^(.*).htm?$ pets4you.php?page=$1 [QSA,L]

但是这个....

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

# redirect to http subdomain
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
RewriteCond %{HTTP_HOST} ^www\.m\.pets4you\.com$ [NC]
RewriteRule ^(.*)$ https://m.pets4you.com/$1 [L,R=301]

##################################
RewriteRule ^dogs/(.*).htm?$ breeds.php?page=$1 [L]
RewriteRule ^cats/(.*).htm?$ breeds.php?page=$1 [L]
RewriteRule ^(.*).htm?$ pets4you.php?page=$1 [QSA,L]

重定向到: https://m.pets4you.com/pets4you.php?page=https://m.pets4you.com/dogs/breedname.htm

任何想法为什么? 它忽略了前两条规则,直接进入最后一条规则。

我确实知道一种解决方法,但需要重写 php 代码以实现 worpdress 样式,并更改 .htaccess。

该网站陈旧过时,将被实际的 wordpress 网站取代。但是现在我被要求对这个站点执行此操作。第一次遇到这种问题。

我个人鄙视 .htaccess,因为它不是我最好的领域。任何帮助将不胜感激。 谢谢!

【问题讨论】:

    标签: .htaccess redirect https


    【解决方案1】:

    和往常一样,我一问问题就明白了。一些没有 https 的硬编码 URL 会导致问题。忘记检查主索引页面。因为我通常将 URL 作为 PHP 变量。

    【讨论】:

      猜你喜欢
      • 2012-02-27
      • 2012-03-02
      • 2016-10-17
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-27
      • 1970-01-01
      相关资源
      最近更新 更多