0

我需要使用 HTTP、HTTPS 和 SSL 进行这项工作,这是我的实际(工作)重写:

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
</IfModule>

但我需要强制将非“www”网址(如http://domain.com)重定向到与“www”相同的网址,并且仍然可以使用 index.php?url=$1 因为我的“路由器”引擎。

谢谢您的帮助!

4

2 回答 2

0

只需在开头添加非 www 到 www 规则,如下所示:

#non-www to www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domain\.com/?$ [NC]
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301]

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
</IfModule>
于 2012-12-05T03:02:21.460 回答
0

这应该可以完成工作(在任何其他重写规则之前):

<IfModule mod_rewrite.c>
   RewriteEngine On
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{HTTPS} !=on
   RewriteCond %{HTTP_HOST} !^www.*$
   RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
   RewriteCond %{HTTPS} =on
   RewriteCond %{HTTP_HOST} !^www.*$
   RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [L,R=301]
   RewriteRule ^(.*)$ index.php?url=$1 [L,QSA]
</IfModule>
于 2012-12-04T22:54:43.430 回答