【问题标题】:htaccess from old forum url to new onehtaccess 从旧论坛 url 到新论坛
【发布时间】:2016-04-14 05:40:32
【问题描述】:

直到现在我一直使用 htaccess 来重写 URL,以便将非 SEF url 转换为 SEF url。

今天我面临一个新的挑战,老实说,我对正则表达式没有信心,我真的不知道如何实现。

我有一种情况,我的网站上的论坛已按以下形式更新:

上一个链接:www.domain.com/forum3/topic/name-of-topic/post/7548

新链接:forum.domain.com/Topic-name-of-topic/

如何拦截 /post/37764 字符串并告诉 htaccess 不考虑它?

以及如何指示服务器构建那种 url 而不是 provious。我对此感到非常困惑。

有什么建议吗?非常感谢。有没有我可以阅读的资源来帮助我更好地理解这个案例?

再次感谢。

编辑

弗洛里安的答案是正确的。我只是添加了一些模组以更好地适应它。

RewriteEngine On
#RewriteBase /
RewriteRule ^forum3/topic/([^/]+)/post/[0-9]+$ http://forum.domanin.com/Topic-$1/ [L,R=301]
RewriteRule ^forum3/topic/([^/]+)-[0-9]+$ http://forum.domanin.com/Topic-$1/ [L,R=301]

【问题讨论】:

    标签: .htaccess friendly-url


    【解决方案1】:

    你可以试试这个代码:

    RewriteEngine On
    RewriteBase /
    RewriteRule ^forum3/topic/([^/]+)/post/[0-9]+$ /Topic-$1/ [L,R=301]
    

    /([^/]+)/ 表示我们要捕获包含一个或多个字符的字符串,除了/ 之前和之后是/

    此链接可能会帮助您测试您的 .htaccess 文件:

    【讨论】:

    • 非常感谢弗洛里安。回到办公室后,我将立即尝试您的代码。我会及时通知您。
    • 成功了!我只是添加了一些字符串以更好地适应我的情况。有关详细信息,请参阅我编辑的问题。
    • 嗨,弗洛里安,只有一个问题:我有时会有像 www.domain.com/forum3/topic/name-of-topic/post/7548 这样的链接。我试过RewriteRule ^forum3/topic/([^/]+)-[0-9]/post/[a-z0-9_.-]+$ http://forum.domanin.com/Topic-$1/ [L,R=301],但没有成功。有什么建议吗?谢谢
    • 嗨 Aptivus,这条路径/forum3/topic/name-of-topic/post/7548 应该已经被上面的规则重写了(和问题中的一样)
    • 抱歉,我粘贴了错误的链接。顺便说一句,我研究了这个案例并使用一些正则表达式解决了这个问题。无论如何,谢谢!
    猜你喜欢
    • 2022-01-05
    • 2019-11-02
    • 1970-01-01
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多