.htaccess htaccess 301重定向不带子目录URL

ds97pgxw  于 2022-12-13  发布在  其他
关注(0)|答案(1)|浏览(158)

我正在尝试重定向此URL:
www.domain.com/courses/company/
改为:
www.domain.com/courses/

也重定向这些:

网站www.domain.com/courses/company/123/www.domain.com/courses/company/456/
我首先试过这个:
重定向301 /课程/公司/课程/
而且还将URL重定向到子目录。
接下来,我尝试了以下方法:
重定向301 /courses/company/$ /courses/...因为我认为$符号使其与该URL完全匹配。
但它没有改变任何方向。
谢谢你!

sycxhyv7

sycxhyv71#

Redirect指令的问题在于,它不允许像您尝试的那样使用“正则表达式”。它只实现了一个简单的前缀字符串匹配方法。
相反,您必须使用RedirectMatch指令,该指令支持此类表达式:

RedirectMatch 301 ^/courses/company/?$ /courses/

请参阅RedirectMatch指示词的文件。
相反,您也可以使用更灵活的重写模块:

RewriteEngine on
RewriteRule ^/?courses/company/?$ courses/ [L,R=301]

还有一个大概的提示:一开始使用302temporary 重定向通常是一个好主意。2只有当一切都按预期运行时,才将其更改为301permanent 重定向。3这样可以防止客户端出现令人讨厌的缓存问题。

相关问题