我的htaccess有问题
我有以下几点
Redirect 301 /inspection-test.html http://www.newsit.co.uk/inspection-test.aspx我现在的网站在php上运行,新的在.net上运行。
重定向可以工作,但它显示为
http://www.newsit.co.ukinspection-test.html发布于 2011-07-16 23:13:01
真奇怪。
附加在路径末尾的url-part应该只发生在你的重定向第一个参数是一个目录,而不是一个文件。
现在,在测试重写时,您不应该使用301代码,因为您的浏览器将存储第一个结果(这是您的第一个测试),并且永远不会向服务器请求固定的映射(如果您修复了它)。因此,在重定向测试之前,您也可以关闭浏览器。因此,也许您的规则是可以的,但是您的浏览器没有对其进行测试。
在测试时,您应该使用302重定向代码。
有很多页面,所有的url都不同
你应该学习RewriteMap。如果你可以很容易地列出旧的网址,并将每个网址映射到一个新的网址,那么txt:地图将完成这项工作,首先使用302个代码,当你可以使用它时,使用301代码的散列地图文件,而不是文本文件。
RewriteMap oldtonew txt:/path/to/my/hashmap/oldtonew.txt [NC]
# detect new url from map file
RewriteCond ${oldtonew:%{REQUEST_URI}|NotFound} !NotFound
RedirectRule .? ${oldtonew:%{REQUEST_URI}} [NC,R=301]
#no mapping
RewriteCond ${oldtonew:%{REQUEST_URI}|NotFound} NotFound
RedirectRule .? http://www.example.com/notfound.html [NC,R=301]在oldtonew.txt中编写这样的代码
/inspection-test.html http://www.newsit.co.uk/inspection-test.aspx
/inspection-foo.html http://www.newsit.co.uk/inspection-bar.aspx否则,如果你可以在旧的url中用一些关键字来表示从旧到新的映射,DirectoryMatch也许可以做到这一点,或者用好的提取进行一些mod重写。但是更快的解决方案是带有散列文件(dbm)的rewriteMap。
最后,如果您只能使用程序(数据库?)来表示从旧到新的url映射。在rewriteMap中,您必须使用prg:关键字(相当困难)。
https://stackoverflow.com/questions/6705873
复制相似问题