2016-07-26 86 views
0

我正在寻找优化一些重写规则以获得更好的加载性能。我希望将规则从HTTP重写为HTTPS,并处理GET var的文件名重写。apache htaccess重写https request_filename

这是功能的代码:

RewriteEngine on 

RewriteCond %{HTTPS} off 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php?var=$1 [L,QSA] 

这是我的企图,将其重定向到只有%{REQUEST_URI}:

RewriteEngine on 

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ https://%{HTTP_HOST}index.php?var=$1 [R,L,QSA] 

回答

0

AFAIK,重写规则不分析为每个请求如果它们位于apache /虚拟主机配置文件中,而是在服务器启动时进行分析和存储。我不确定.htaccess,但我很确定,一旦文件已被解析,它只会重新分析,如果它的时间戳发生变化。

在任何情况下,您的组合规则将不起作用,因为重定向到https和通过index.php重写是独立的操作。你的组合版本只会重写不是https的东西。

+0

感谢您提供对主要问题的更好理解。它看起来好像我将需要保持我原来的代码。 – Sean