首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >301重定向htaccess

301重定向htaccess
EN

Stack Overflow用户
提问于 2011-07-15 18:46:48
回答 1查看 206关注 0票数 0

我的htaccess有问题

我有以下几点

代码语言:javascript
复制
Redirect 301 /inspection-test.html http://www.newsit.co.uk/inspection-test.aspx

我现在的网站在php上运行,新的在.net上运行。

重定向可以工作,但它显示为

代码语言:javascript
复制
http://www.newsit.co.ukinspection-test.html
EN

回答 1

Stack Overflow用户

发布于 2011-07-16 23:13:01

真奇怪。

附加在路径末尾的url-part应该只发生在你的重定向第一个参数是一个目录,而不是一个文件。

现在,在测试重写时,您不应该使用301代码,因为您的浏览器将存储第一个结果(这是您的第一个测试),并且永远不会向服务器请求固定的映射(如果您修复了它)。因此,在重定向测试之前,您也可以关闭浏览器。因此,也许您的规则是可以的,但是您的浏览器没有对其进行测试。

在测试时,您应该使用302重定向代码。

有很多页面,所有的url都不同

你应该学习RewriteMap。如果你可以很容易地列出旧的网址,并将每个网址映射到一个新的网址,那么txt:地图将完成这项工作,首先使用302个代码,当你可以使用它时,使用301代码的散列地图文件,而不是文本文件。

代码语言:javascript
复制
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中编写这样的代码

代码语言:javascript
复制
/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:关键字(相当困难)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6705873

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档