linux - Firefox 中的 Mod 重写问题

标签 linux apache .htaccess mod-rewrite mozilla

我创建了一个 .htaccess 文件,它做两件事:将 http 重定向到 https 以及 www。到非 www。这是代码:

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

RewriteBase /
RewriteCond %{HTTP_HOST} ^www.profstream.com [NC]
RewriteRule ^(.*)$ https://profstream.com/$1 [L,R=301]

这在 Chrome、Safari 和 Opera 中运行良好,但出于某种原因,当我在 Firefox 中键入 profstream.com/sandbox/login.php 时,它会重定向到 https://profstream.com/https://www.profstream.com/sandbox/login.php。 .我在这里做错了什么?

最佳答案

我认为你缺少 [L] 和 [QSA],试试这个:

  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

L 是离开,否则你将使用这之后的规则。
QSA是添加URL的查询字符串。

第二部分我觉得应该是这样的:

  RewriteCond %{HTTP_HOST} ^www.profstream.com [NC]
  RewriteRule (.*) https://profstream.com%{REQUEST_URI} [QSA,L]

不知道 RewriteBase/,是否需要?

如果你希望两者都发生,也许你应该颠倒顺序

  RewriteCond %{HTTP_HOST} ^www.profstream.com [NC]
  RewriteRule (.*) https://profstream.com%{REQUEST_URI} [QSA,L]

  RewriteCond %{HTTPS} off
  RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [QSA,L]

关于linux - Firefox 中的 Mod 重写问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702499/

相关文章:

php - IBM-DB2 在 Linux 系统上的 xampp1.7.1 上安装失败

linux - 如何记录 Linux 进程的内存和 CPU 使用情况

c++ - 十六进制值到 wchar_t 字符 (UTF-8) 的转换

django - 在Django管理中保存包含非ASCII字符的ImageField时出现UnicodeEncodeError

linux - Linux内存管理器中的"Weak reference"?

apache - Debian 机器上安装的 Apache 版本

ruby-on-rails - Redmine 在 Apache 中无法正常工作

regex - 将非 www/ssl/尾部斜杠的重写与 .htaccess 中的大写->小写相结合

.htaccess - 如何使用 ssl 包含相对 url

php - Codeigniter - 收到 404 Not Found 错误