Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 如何应用重写规则将旧链接结构重定向到新链接?_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 如何应用重写规则将旧链接结构重定向到新链接?

.htaccess 如何应用重写规则将旧链接结构重定向到新链接?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我的网站上有以下结构的链接: site.com/category/1/cat1name(可以有破折号) site.com/lessons/1/lesson1name(可以有破折号) site.com/exercise/1/exname(可以有破折号) 我把结构改为 site.com/guitar-lessons/cat1name/1 site.com/guitar-lesson/lesson1name/1 site.com/guitar-lesson-ex/exname/1 我正在使用larav

我的网站上有以下结构的链接:

  • site.com/category/1/cat1name(可以有破折号)
  • site.com/lessons/1/lesson1name(可以有破折号)
  • site.com/exercise/1/exname(可以有破折号)
  • 我把结构改为

  • site.com/guitar-lessons/cat1name/1
  • site.com/guitar-lesson/lesson1name/1
  • site.com/guitar-lesson-ex/exname/1
  • 我正在使用laravel,我知道我可以使用路由来处理这个问题,但我想使用301重定向从旧链接结构到新链接结构

    我不知道如何创建适当的重写规则来考虑不同的url部分和重新排序

    我读过的所有例子似乎都有其细微差别,以满足非常具体的需求。由于不熟悉重写规则,我不知道如何构建规则。对于上面的案例1,我尝试了

    RewriteRule ^category/(.*)$/(.*)$ guitar-lessons/$2/$1 [NC,R=301]
    
    但是使用这个并不能产生匹配

    有什么建议吗


    谢谢

    好吧,我不该这么快就发了。我意识到我不需要规则第一部分中的$符号。我看到并认为我需要使用“$”。规则正在运行:

    RewriteRule ^category/(.*)/(.*) guitar-lessons/$2/$1 [NC,R=301]