htaccess重定向使无限循环 - 还有另一种方式吗?

时间:2015-06-29 06:08:34

标签: regex .htaccess url-redirection

我需要将此网址(http://www.example.com/learn)重定向到此网址(http://www.example.com/learn-it)。

问题是它与重定向的URL上的规则匹配,并产生无限循环。

这不起作用:

Redirect 301 http://www.example.com/learn http://www.example.com/learn-it

2 个答案:

答案 0 :(得分:0)

.htaccess 301重定向

重定向访问者的最流畅方法是使用.htaccess重定向。这没有延迟,因为在将页面提供给浏览器之前,服务器首先检查.htaccess文件...如果它看到这个旧页面从未加载,则访问者将直接发送到新页面。

这些是我使用的一些.htaccess重定向代码,可能会派上用场。这不是一个完整的列表,但是我花了很长时间才找到如何做到这一点所以我会省去你的麻烦并在这里列出它们。哦,请不要给我发电子邮件,询问这些工作的方式,就像我说的那样,我在其他人的帮助下找到了这些......我一点都不知道如何写这些东西并且不承担任何责任(或责任)他们是如何工作的。

如果您比我更具技术头脑并希望直接从源获取信息,请查看Apache Tutorial:.htaccess文件以获取更多详细信息。

有关htaccess重定向的重要说明

  • 始终确保以ascii模式上传.htaccess文件,将其作为二进制文件发送将会破坏它(通常会使您的服务器非常非常不开心。)
  • 如果你在Windows服务器上,
  • .htaccess不起作用。
  • 请务必仔细检查您的更改。清除缓存并查看,测试服务器标头以确保您看到301(这意味着它的永久性)而不是302(临时),除非您绝对确定您真的是临时的。
  • 由于某些操作系统不允许您在“。”之前创建没有文件的文件。您可能需要将其保存为something.htaccess,有些甚至可能需要将其保存为htaccess.txt并在上传后更改它。
  • 确保你的ftp程序会显示.htaccess文件(FileZilla并且是免费的)编辑你看不到的东西有点困难;)
  • 仔细检查您是否覆盖旧的(某些服务器已经为您的自定义404页面放置了一个等等。)
  • 确保将example.com替换为您自己的网站网址; - )

移动单页

快速,轻松,无缝地为您的访问者。

Redirect 301 /oldpage.html http://www.example.com/newpage.html

移动整个网站

这将捕获旧网站上的所有流量,并将其重定向到新服务器上的索引页面。如果您想将每个页面重定向到新的位置,这不适合您。

Redirect 301 / http://www.example.com/

详细说明。如何重定向页面使用.htaccess。阅读this

答案 1 :(得分:0)

您应该使用RedirectMatch才能使用正则表达式来匹配确切的URI:

RedirectMatch 301 ^/learn/?$ /learn-it

确保在测试之前清除浏览器缓存。