.htaccess 重定向到 https,admin 除外 url
.htaccess redirect to https except admin url
我想将所有前端请求重定向到安全站点 https,所有管理/后端 url 应保持不安全的 http。
另外,我用的是Cloudflare CDN。
我的重写规则不起作用,所有查询都转到 https。
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteCond %{REQUEST_URI} !admin
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
请帮帮我
它应该可以正常工作,尽管我会更改:
RewriteCond %{REQUEST_URI} !admin
也许:
RewriteCond %{REQUEST_URI} !^/admin/
如果这适合您的 URL,或者:
RewriteCond %{REQUEST_URI} !^/admin
(如果前端 URL 应该在某处有 'admin')
但无论如何,您可能只是在浏览器中缓存了一个重定向,该重定向在您开始工作之前就已缓存。清除缓存或 "forget this site".
同时删除第二行,无需检查两次。
但不运行您的管理员也通过 HTTPS 是一种耻辱,只是为了登录时的安全等。以及传输机密数据。
更新
由于清除缓存并没有修复它(见评论)推荐enabling logging。
更新 2
根据评论中的讨论,试试这个:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteCond %{REQUEST_URI} !^(/index\.php)?/admin(/|$)
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
这是因为看起来您的应用程序在生成管理 URL 时可能正在添加 /index.php。所以这也涵盖了这一点。
我想将所有前端请求重定向到安全站点 https,所有管理/后端 url 应保持不安全的 http。 另外,我用的是Cloudflare CDN。
我的重写规则不起作用,所有查询都转到 https。
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteCond %{REQUEST_URI} !admin
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
请帮帮我
它应该可以正常工作,尽管我会更改:
RewriteCond %{REQUEST_URI} !admin
也许:
RewriteCond %{REQUEST_URI} !^/admin/
如果这适合您的 URL,或者:
RewriteCond %{REQUEST_URI} !^/admin
(如果前端 URL 应该在某处有 'admin')
但无论如何,您可能只是在浏览器中缓存了一个重定向,该重定向在您开始工作之前就已缓存。清除缓存或 "forget this site".
同时删除第二行,无需检查两次。
但不运行您的管理员也通过 HTTPS 是一种耻辱,只是为了登录时的安全等。以及传输机密数据。
更新
由于清除缓存并没有修复它(见评论)推荐enabling logging。
更新 2
根据评论中的讨论,试试这个:
RewriteCond %{HTTPS} off
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteCond %{REQUEST_URI} !^(/index\.php)?/admin(/|$)
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
这是因为看起来您的应用程序在生成管理 URL 时可能正在添加 /index.php。所以这也涵盖了这一点。