我试图将一堆网页从一个域重定向到另一个域(不是所有页面,只是其中的一部分)。
网页的网址是domain.com/?p=ID
ID始终是一个数字。
我想将ID为2000以下的所有网页重定向为新域名,例如domain2.com /?= ID
我该怎么办?我可能不得不使用REGEX模式,但在REGEX方面我并不精通。
谢谢,
罗伊
答案 0 :(得分:0)
这可能与正则表达式有关,但正则表达式并不适合做那样的范围。另一种方法可能是在Apache conf中使用RewriteMap,如下所示:
RewriteMap examplemap txt:/path/to/file/map.txt
RewriteRule ^/?p=(.*) ${examplemap:$1|/?p=$1}
您的/path/to/file/map.txt
文件将包含以下内容:
1 http://domain2.com/?p=1
2 http://domain2.com/?p=2
3 http://domain2.com/?p=3
.
.
2000 http://domain2.com/?p=2000
如果在地图文件中找不到该条目,则它应默认为现有域,因为RewriteRule中管道之后的部分。这可能看起来像是一种矫枉过正,但它可以为您提供对每次重定向的最佳控制。
以上代码尚未经过测试,但希望它能解释校长。有关使用RewriteMap的更多信息,请参阅Apache docs。