我需要修改我的.htaccess文件,将所有网址重定向到HTTPS版本而不使用" www"。
class MeasuredControllerAdmin( admin.ModelAdmin):
list_display = ('tem0', 'tem1', 'tem2')
def tem2(self, obj):
...............
return obj.tempraturemeasure.filter(deviceindex="2").latest("senddate").temperature
.......
def tem1(self, obj):
...............
return obj.tempraturemeasure.filter(deviceindex="1").latest("senddate").temperature
.......
def tem0(self, obj):
...............
return obj.tempraturemeasure.filter(deviceindex="0").latest("senddate").temperature
.......
def get_queryset(self, request):
qs = super(MeasuredControllerAdmin, self).get_queryset(request)
qs = qs.extra(
select = {
"tem2" : "<sub query for selecting the latest temp2>"),
"tem1" : "<sub query for selecting the latest temp1>"),
sub query for query for selecting the latest temp1"),
"temp0:"<sub query for selecting the latest temp0>")})
tem2.admin_order_field = 'tem2'
tem1.admin_order_field = 'tem1'
tem0.admin_order_field = 'tem0'
这就是我的.htaccess文件的样子:
http://example.com --> https://example.com
http://www.example.com --> https://example.com
https://www.example.com --> https://example.com
我需要对.htaccess进行哪些修改才能在没有&#34; www&#34;的情况下转发到HTTPS?
答案 0 :(得分:1)
这取决于您对当前代码的处理方式。这看起来像一个名为redirect的文件,但是试图从SEO友好的URL显示一个php页面。所以我认为这可能让人感到困惑。
无论如何,要做你需要做的事情并在没有www的情况下强迫https,你只需要再做一个规则。
此外,您的第二条规则需要在RewriteRule测试字符串中使用两个捕获组,因为您需要使用$ 1和$ 2反向引用的两个不同值。
RewriteEngine On
#rediect www to non www and/or http to https --- all combinations.
RewriteCond %{HTTP_HOST} !^example\.com [NC,OR]
RewriteCond %{HTTPS} !^on
RewriteRule ^ https://example.com%{REQUEST_URI} [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)/(.+)/?$ redirect.php?id=$1&page=$2 [QSA,L]
因此,第二条规则适用于这样形成的网址。
https://example.com/123/pagename