我想通过仅针对某些 URL 模式进行重定向来强制使用 SSL www。
例如,
强制 SSL www 重定向:
http://example.com/asia/fewf -> https://www.example/asia/fewfwe
http://example.com/africa/foo/bar/1/ -> https://www.example/africa/foo/bar/1/
不要做任何事情:
http://example.com/europe/1 -> http://example.com/europe/1
http://www.example.com/europe/1 -> http://www.example.com/europe/1
我尝试添加这个:
RedirectMatch 301 ^(/asia[^/]*/.*)$ https://www.example.com$1
但是,它会导致错误:“重定向太多”
答案1
我认为您收到过多重定向的原因是,即使 URL 以 https 请求,RedirectMatch 也会触发,因此即使它已经变成 https,它也会一遍又一遍地重定向。
我建议使用 mod_rewrite 来解决这个问题。例如:
RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteRule %{REQUEST_URI} ^(/asia[^/]*/.*)$ https://www.example.com$1 [R=301,L]
当您进行测试时,我建议您不要R=301
使用 ,而只使用 ,R
因为这样不会导致浏览器永久缓存重定向,从而让故障排除变得复杂。