【问题标题】:htaccess redirect old site to 2 different domainshtaccess 将旧站点重定向到 2 个不同的域
【发布时间】:2009-05-05 03:04:11
【问题描述】:

好的,场景如下:

我在主机的根目录上有一个博客,然后我在一个名为 fsGallery 的子文件夹中托管了一些应用程序。现在,我为我的博客购买了一个新域名,并为我的应用购买了另一个域名。 ii 想知道正确的 htaccess 301 重定向,以便我将旧目录重定向到它们各自的新域

这是一个示例目录结构:

root/
  /app
  [blog]

试图: redir /app 到 newdomainforapp.com redir [blog] 到 newdomainforblog.com

另外,最初,我的应用程序曾经接受这样的 url 参数: 应用程序/用户/1234567

所以我也想: redir /app/user/{dynamic int parameter} 到 newdomainforapp.com/profile/{dynamic int parameter}

有人可以帮我打吗?

【问题讨论】:

    标签: .htaccess redirect dns


    【解决方案1】:

    可能与编程无关,但无论如何:正确的方法是在虚拟主机配置文件中(即在<VirtualHost *:80> ... </VirtualHost> 部分),而不是在.htaccess 文件中。使用的指令是

     RedirectMatch permanent /app/user/([0-9+]) http://newdomainforapp.com/profile/$1
     Redirect permanent /app http://newdomainforapp.com
     Redirect permanent / http://newdomainforblog.com
    

    【讨论】:

    • 我以前只被我的朋友托管在一个子域中,所以我没有任何访问服务器特定文件的权限。但无论如何也要感谢这一点。既然我有自己的主机,它可能会派上用场。
    • 重定向和 RedirectMatch 在 .htaccess 中工作。检查他们的文档:httpd.apache.org/docs/1.3/mod/mod_alias.html
    • @outis: 是的,但是,使用它们的正确方法是将它们放在主服务器配置文件中。事实上,将指令放在 vhost 配置文件中几乎总是比使用 .htaccess 文件更好。
    【解决方案2】:

    看来RewriteRules 应该可以正常工作。

    RewriteEngine on
    RewriteRule ^/?app/user/([0-9]+) http://newdomainforapp.com/profile/$1 [R=301,L]
    RewriteRule ^/?app(/(.*))?$ http://newdomainforapp.com/$2 [R=301,L]
    RewriteRule ^/?(.*) http://newdomainforblog.com/$1 [R=301,L]
    

    您可能需要尝试使用这些群组才能正确重定向文章。

    【讨论】:

    • 其实我更喜欢大卫的建议——你试过了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-24
    • 2015-09-12
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2016-06-26
    • 2020-06-15
    相关资源
    最近更新 更多