我试图提高我对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.com
或www.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/
…