【问题标题】:apache htaccess rewrite https request_filenameapache htaccess 重写 https request_filename
【发布时间】:2016-07-26 18:04:13
【问题描述】:

我希望优化一些重写规则以获得更好的加载性能。我希望结合规则从 HTTP 重写为 HTTPS 以及处理 GET var 的文件名重写。

这是功能代码:

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]

【问题讨论】:

    标签: apache .htaccess mod-rewrite


    【解决方案1】:

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

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

    【讨论】:

    • 感谢您提供对主要问题的更好理解。看起来我需要保持原来的代码不变。
    猜你喜欢
    • 2019-04-16
    • 2011-07-23
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 2012-03-07
    • 2012-12-29
    • 1970-01-01
    相关资源
    最近更新 更多