【问题标题】:redirect ALL urls from old site to index.php on new one with .htaccess?使用 .htaccess 将旧站点的所有 url 重定向到新站点上的 index.php?
【发布时间】:2012-08-21 16:47:52
【问题描述】:

几个问题,简单来说:

  1. .htaccess文件一般存放在public_html目录下吗?我想是的,不是吗?

  2. 如果我没有找到这样的文件,我可以简单地创建它并使用 FTP 上传吗?

3(最重要的是)。我需要将所有 URL 重定向到一个新 URL 的代码是什么,即http://www.newsite.com

不就是Redirect 301 / http://www.newsite.com/吗?

谢谢

【问题讨论】:

    标签: .htaccess redirect directory


    【解决方案1】:

    不就是Redirect 301 / http://www.newsite.com/吗?

    正确,这是您唯一需要的。它将以/ 开头的所有内容重定向到http://www.newsite.com/ 中的适当位置。示例:

    您转到http://oldsite.com/some/path/to/file.php,您将被重定向到http://www.newsite.com/some/path/to/file.php

    如果您希望所有内容都简单地转到新站点的文档根目录,您可以改用RedirectMatch

    RedirectMatch 301 .* http://www.newsite.com/
    

    所以如果你去http://oldsite.com/some/path/to/file.php,你会被重定向到http://www.newsite.com/

    并非所有 apache 安装都安装了 mod_rewrite,如果未安装,如果您尝试使用重写引擎,则会收到 500 服务器错误。但是,通常总是安装 mod_alias。

    【讨论】:

    • +1 - 信息丰富的答案。所以 RedirectMatch 被 mod_alias 使用,而 Redirect 301 被 mod_rewrite 使用?
    • @khanahk 不,两者都是 mod_alias。一个重定向路径(包括)之后的所有内容,另一个不重定向。另一个答案使用 mod_rewrite 并且您可能没有加载它。
    【解决方案2】:

    问题 1:是否可以仅将 .htaccess 上传到 public_html 取决于网络主机,但这可能会起作用。

    问题 2:我会这样设置重定向:

    RewriteEngine On    
    RewriteRule ^(.*) http://www.newsite.com/ [R=301,L]
    

    【讨论】:

    • 我还要注意,您也许可以在第二行的开头只执行“RewriteRule ”而不是“RewriteRule ^(.)”,但我目前无法测试。
    • 我刚刚上传了一个包含这些内容的 .htaccess 文件并得到了这个:'内部服务器错误服务器遇到内部错误或配置错误,无法完成您的请求。请联系服务器管理员并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。服务器错误日志中可能提供有关此错误的更多信息。此外,在尝试使用 ErrorDocument 处理请求时遇到 500 Internal Server Error 错误。有什么想法吗?
    • 可能 mod_rewrite 未启用...不知道如何解决这个问题。您是否尝试过不使用“RewriteEngine On”?这可能已经启用?
    • 似乎并没有为我改变它。我通过在域注册商控制面板中编辑重定向设置来解决这种情况。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2018-05-01
    • 1970-01-01
    • 2015-06-14
    • 2015-07-16
    • 2022-01-13
    相关资源
    最近更新 更多