Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache .htaccess重定向到https,管理员url除外_Apache_.htaccess_Mod Rewrite_Url Rewriting_Cloudflare - Fatal编程技术网

Apache .htaccess重定向到https,管理员url除外

Apache .htaccess重定向到https,管理员url除外,apache,.htaccess,mod-rewrite,url-rewriting,cloudflare,Apache,.htaccess,Mod Rewrite,Url Rewriting,Cloudflare,我想将所有前端请求重定向到安全站点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=30

我想将所有前端请求重定向到安全站点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”)

但无论如何,你可能只是在你的浏览器中缓存了一个重定向,在你让它工作之前。清除缓存或“忘记此站点”

同时拆下管路2,无需检查两次

但不通过HTTPS运行你的管理员是一件很遗憾的事情,只是为了在登录到它时的安全以及传输机密数据

更新

因为清除缓存并不能修复它(请参阅注释),所以建议您这样做

更新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。所以这也涵盖了这一点。

使用
REQUEST
变量,而不是
REQUEST\u URI
感谢您的快速回答,Cloudflare CDN的第二行,否则我会收到很多重定向错误。这是您浏览器中的缓存吗?什么意思,它不起作用?请确切地告诉我发生了什么?它将example.com/admin重定向到https。您可以尝试其他浏览器来确定吗?是否在任何地方设置了其他重定向逻辑?下一步是启用mod rewrite日志,如果可以的话,看看发生了什么。