.htaccess如果满足多个条件,则重写URL

时间:2018-07-17 16:15:06

标签: .htaccess url-rewriting

如果要满足一些条件,并尝试在.htaccess中使用if / else语句,我将尝试重写url

如果

  • REQUEST_URI为空或'/'
  • SERVER_NAME不包含“ sam”一词
  • SERVER_PORT是443。

然后在www前面添加。网址,然后将/ website附加到网址末尾。

否则,

  • REQUEST_URI不为空或不是'/'
  • SERVER_NAME不包含“ sam”一词
  • SERVER_PORT是443。

然后在www前面添加。网址。

到目前为止,这是我所拥有的,但是我不确定这是否是正确的订单,即使它是正确的,因为它对我不起作用,也不会发生重定向。

<If "%{REQUEST_URI} == '/' || %{REQUEST_URI} == ''">
    RewriteCond %{SERVER_NAME} !sam
    RewriteCond %{SERVER_PORT} 443
    RewriteRule .* https://www.%{SERVER_NAME}/website [R=301,L]
</If>
<Else>
    RewriteCond %{SERVER_NAME} !^sam
    RewriteCond %{SERVER_PORT} 443
    RewriteRule .* https://www.%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
</Else>

1 个答案:

答案 0 :(得分:0)

无需其他测试即可使用:

RewriteCond %{SERVER_NAME} !sam
RewriteCond %{SERVER_PORT} 443
RewriteRule ^$ https://www.%{SERVER_NAME}/website [R=301,L]

RewriteCond %{SERVER_NAME} !sam
RewriteCond %{SERVER_PORT} 443
RewriteRule ^.+$ https://www.%{SERVER_NAME}%{REQUEST_URI} [R=301,L]