我遇到了.htaccess重写规则的问题,并想知道是否有人可以提供帮助。
我有一个重定向任何非www的设置。网址到www。但是我还需要引入https重定向。在找了一段时间之后我找到了下面的第一个例子,但它在所有浏览器中都会导致重定向循环错误。
第二个示例适用于所有场景,除了访问www.example.com并且不指向https。有没有人知道解决这个问题的方法呢?
# Redirect Loop
RewriteCond %{SERVER_PORT} !=443 [OR]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.website.com/$1 [R,L]
# Works (without ssl redirect)
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.website.com/$1 [R,L]
我已尝试以下条件导致同样的错误
RewriteCond %{HTTPS} off
RewriteCond %{SERVER_PORT} 80
完整htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
Options +FollowSymlinks
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R,L,NE]
# Removes index.php from URLS
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{REQUEST_URI} !/system/.* [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
# Directs all traffice through the site index
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?/$1 [L]
</IfModule>
答案 0 :(得分:0)
您可以使用单一规则添加 {
"_index": "test_index",
"_type": "object",
"_id": "1",
"_score": 1,
"_source": {
"attributes": [
{ "converted": null },
{ "converted": 1234.567 },
{ "converted": null }
]
}
}
和www
:
https
确保使用此规则替换两个规则并清除浏览器缓存。