2017-07-01 60 views
1
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (?!^infos/)^(.+?)/?$ /dl.php?f=$1 [L,QSA,NC] 

此规则停止工作后切换到https/SSL与Cloudflare,我不明白为什么?与cloudflare的URL重写冲突SSL

如果我尝试的网址完全相同的,而不https://开头部分,页面是accessibles,所以规则是工作,但只适用于非固定的URL

回答

1

请记住,HTTP和的https的变种从http服务器的角度来看,域由两个完全分开的主机提供服务。这意味着你有单独的配置。最有可能的是ssl主机不会而不是已启用对动态配置文件(“.htaccess”)的解释。看看apache的AllowOverride指令......


而且一般提示:你应该总是喜欢在http服务器内这些规则(虚拟)主机配置,而不是使用动态配置文件(.htaccess风格文件)。这些文件出了名的错误,很难调试,他们真的放慢了服务器。它们仅作为最后一种选择,用于您无法控制主机配置的情况(阅读:真正便宜的托管服务提供商),或者您拥有依赖编写自己的重写规则的应用程序(这是一个明显的安全噩梦)。

+0

我无权访问配置文件,有没有办法通过.htaccess文件切换AllowOverride All?它是一个私人管理部分,所以我不太担心性能问题,但是这是一个非常好的信息,因为我在其他网站上使用很多.htaccess,我不知道它可能会降低服务器的速度,我知道 – comdex

+0

没关系,我只是意识到这不是一个htaccess的问题,静态文件也返回404错误,我的坏... Cloudflare SSL似乎不喜欢我的ISPConfig服务器:( – comdex

+0

@comdex有没有办法启用解释这些文件中的'.htaccess'风格文件本身......思考你所要求的;-) – arkascha