【问题标题】:htaccess 301 redirect for multiple urlshtaccess 301 重定向多个网址
【发布时间】:2017-02-03 02:54:37
【问题描述】:

我有很多网址,例如:

mydomain.com/location/illinois/

mydomain.com/location/wisconsin/green-bay/

mydomain.com/location/new-york/

我删除了位置一词并将其替换为: /博客/类别/

所以这些网址现在应该是:

mydomain.com/blog/category/illinois/

mydomain.com/blog/category/wisconsin/green-bay/

mydomain.com/blog/category/new-york/

我正在尝试通过一个重写规则来完成这项工作。但是我创建的那个不起作用。你能告诉我它有什么问题吗?

这是我尝试过的:

RewriteEngine On

RewriteBase /

RewriteRule ^/location(/.*|)$ /blog/category/$1 [L,NC,R=301]

【问题讨论】:

    标签: php .htaccess redirect mod-rewrite


    【解决方案1】:

    不错的尝试,您只需删除 .htaccess 匹配项中不包含的开始斜线:

    RewriteEngine On
    RewriteRule ^location(/.*|)$ /blog/category$1 [L,NC,R=301]
    

    也不需要 RewriteBase。而且您在已经捕获的类别之前将斜线加倍了。

    【讨论】:

    • 谢谢。出于好奇,这种重写与以下内容有何不同:RedirectMatch 301 /location/(.*) /blog/category/$1
    • 在那个例子中,除了标志的影响和处理时间之外,它并没有真正的不同。 mod_rewrite 只是一个比 RedirectMatch 更强大的系统,具有更多的可能性。在这种情况下,他们都可以完成这项工作。
    猜你喜欢
    • 2010-12-03
    • 2012-11-25
    • 1970-01-01
    • 1970-01-01
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-16
    相关资源
    最近更新 更多