问题描述
Id希望在apache服务程序上使用.htaccess
文件,将给定域上的所有路径重定向到新位置,但保留一些特定的URL。
Redirect 301 /(.*) www.example.com
# but not /foo
# but not /bar
# but not /baz
解决方法
您不能使用Redirect
指令来执行此操作。我建议使用mod_rewrite
:
RewriteEngine On
RewriteCond %{THE_REQUEST} !/(?:foo|bar|baz)[?/\s] [NC]
RewriteRule ^ http://www.example.com%{REQUEST_URI} [L,NE,R=301]
-
THE_REQUEST
变量表示Apache从您的浏览器收到的原始请求,并且在执行其他重写指令后不会被覆盖。此变量的示例值为GET /index.php?id=123 HTTP/1.1