我们正在构建一个新网站,但仍会引用我们之前网站上的一些旧网页,这些网页现在将在域之后获得/_old
路径。我想使用Rewrite
删除它。我试过了:
RewriteCond %{HTTP_HOST} ^www\.mysite\.edu$ [NC]
RewriteRule ^_old(/.*|)$ $1 [L,NC,R]
但是,然后我访问www.mysite.edu/_old/test
它不会按预期重写为www.mysite.edu/test
。
我做错了什么?
答案 0 :(得分:0)
首先,您的代码应该按照您在给定测试中的预期执行,除非您没有将RewriteEngine on
放在顶部,如果它在那里,这意味着您可能需要清除浏览器缓存或{{1}在您的服务器上未启用,最终您可能会在没有mod_rewrite
的情况下发出请求,并且您的规则将仅与www
的请求匹配。
所以,我会给你两个建议,如果你已经做了以前的步骤,你可以选择适合你的东西,首先是这段代码:
www
上面的代码会重定向以RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?mysite\.edu$ [NC]
RewriteRule ^_old/?(.*)$ /$1 [L,NC,R=301]
开头的所有内容,如果在_old
之后或_old
之后没有任何内容,它将转到主根目录。
如果您想使用上述代码,请确保从URI中删除/
时,每个请求都有相同的路径。
另一个建议是,如果您只想在外部重定向,然后在内部使用相同的路径,请用此替换该代码:
_old