【问题标题】:RewriteCond or just RewriteRule for a simple .htaccess re-write?RewriteCond 或只是 RewriteRule 用于简单的 .htaccess 重写?
【发布时间】:2012-10-20 22:05:54
【问题描述】:

我正在编写一个简单的 .htaccess 重写以强制单个页面使用 https(受this question 的答案启发)。

是不是用RewriteCond比较好,如下:

RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} ^/page\.php$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

或具有 RewriteRule 条件的较短替代方案:

RewriteCond %{HTTPS} off
RewriteRule ^page\.php$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

【问题讨论】:

  • 我认为两者都应该适用于您的情况,两者没有太大区别。
  • @humayun 我可以确认这两个 do 工作。我想知道是否有任何理由使用以前的更长版本。另外,如果有人可以做任何改进,那么请做

标签: .htaccess mod-rewrite


【解决方案1】:

好吧,如果您使用 apache 作为您的 httpd 服务器,那么您绝对可以安全地使用单一条件和单一规则,这足以完成您的给定任务。使用前者比使用较短的没有优势。 我说,如果您不必制定/应用进一步的规则或检查,那么请使用较短的规则,而不是再应用一个额外的条件。我这样说是因为您的情况相当简单,您只需针对给定的一个页面重定向到 https

即使您查看AskApache site here,他们也建议最好的方法是仅使用 %{HTTPS} 变量和一个 RewriteRule,这是最好和最有效的方法。

如果您的担忧与我上面提到的不同,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多