我无法重写以下内容:
- 我的站点
- mysite.com/myproduct
- www.mysite.com
- www.mysite.com/myproduct
到mysite.com/myproduct/
无论我尝试什么,它要么缺少重写,要么重写其他网址。我猜这应该是 4 对后续的 Cond 和 Rule,因为我只需要精确的 4 个重定向,但我对语法和表达式不够熟悉。
非常感谢您的帮助。
答案1
首先,不要尝试将没有斜线的内容改写为有斜线的内容 - 这样做会招致灾难。斜线必须完全匹配!
第二 - 不建议在 htaccess 中重写,并且其工作方式与 httpd.conf 不同。
第三 - 为什么要重写?目标是什么?
如果您希望这 4 个前缀的所有请求都最终到达同一个网站,请创建一个新的 vhost,并将其与重定向匹配,如下所示:
<VirtualHost *:80>
ServerName www.mysite.com
Redirect /myproduct/ http://mysite.com/myproduct/
</VirtualHost>
<VirtualHost *:80>
ServerName mysite.com
RedirectMatch !^/myproduct/.* http://mysite.com/myproduct/
</VirtualHost>