htaccess测试工具的准确性



我试图提高我对htaccess重写规则的理解,并使用了几个在线测试工具来验证我所做的简单重写,但我不明白为什么返回的url是重复的。我在质疑我的规则是错的还是这个工具本身就有问题?

我所要做的就是将所有请求重定向到。com.au域名的同一页面。

RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$
RewriteRule .? "https://domain.com.au%{REQUEST_URI}" [L,R=301]

我理解的意思是:

  • 条件:主机为domain.comwww.domain.com
  • 规则:匹配任何或不匹配请求的uri并重定向到https://domain.com.au/whatever-the-request-uri-is

但是,当我使用https://htaccess.madewithlove.be进行测试时,返回的url重复如https://domain.com.au/bloghttps://domain.com.au/bloghttps://domain.com.au/blog...然而,在web服务器上,它似乎工作得很好。

我尝试的另一个规则是:

RewriteRule ^(.*)$ https://domain.com.au/$1 [R=301,L]

使用测试工具返回一个正确的结果,但是我读到最好使用服务器变量。

那么是我的第一条规则有问题还是测试工具坏了?

根据我的测试,这是有效的:

RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^ https://example.com.au%{REQUEST_URI} [L,R=301]

我目前无法解释为什么你自己的尝试没有,虽然。对不起!我的印象是,这确实是测试实用程序中的一个bug,假设您使用了https://htaccess.madewithlove.be/