【问题标题】:htaccess redirect for old site url旧网站网址的 htaccess 重定向
【发布时间】:2013-06-05 15:20:05
【问题描述】:

我们有一个客户,正在那里建立一个新网站。旧系统下有所有文章:

http://www.domain.com/articles

新网站是

http://www.domain.com/resources/articles

文章部分的url可以只要:

http://www.domain.com/resources/articles/category-name/title-of-article

还有

http://www.domain.com/resources/articles/page/# 用于分页

新站点将具有与旧文章相同的 URL 结构,但 /resources 部分除外。

我需要拥有以下所有传入流量:

http://www.domain.com/articles 重定向到 http://www.domain.com/resources/articles 但是我需要确保 URL 字符串中文章的类别名称和标题也从请求的旧字符串放入新字符串。

如何使用 htaccess 做到这一点?

--- 编辑 ---

这是我当前的 htaccess:

RewriteEngine on
RewriteRule (.*) $1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)/(.*)$ ?cat=$1&title=$2&subtitle=$3 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/(.*)$ ?cat=$1&title=$2 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*) ?cat=$1

【问题讨论】:

    标签: .htaccess redirect url-rewriting


    【解决方案1】:

    在您的旧网站上: 通过httpd.conf 启用 mod_rewrite 和 .htaccess,然后将此代码放在您的.htaccess 下的DOCUMENT_ROOT 目录下:

    RewriteBase /
    
    RewriteRule ^(articles/.*)$  /resources/$1 [L,R=301,NC]
    

    【讨论】:

    • 旧站点和新站点是同一个站点。这仍然有效吗?相同的站点,相同的托管 - 新设计一些 url 结构更改。
    • 这会导致内部服务器错误。我已经在 htaccess 文件中有一些代码,我将更新我的帖子以包含我已经拥有的内容。
    • 我有两次RewriteRule。将此代码放在RewriteEngine On 行的正下方。
    • 嗨 - 我试过了,但似乎网站上的所有内容都在尝试重定向到资源。当重定向到 /resources/articles 时,我只需要 /articles 在 www.domain.com 之后.所以理想情况下,如果有人放 domain.com/articles/some-thing/some-title 它需要 /some-thing/some-title 并从 /articles/some-thing/some-title 重定向到 /resources/articles/some -东西/一些标题。感谢您的时间 Anubhava!
    猜你喜欢
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-10
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多