我改变了一些网址的路径,并希望尽可能得到一些帮助,在我的.htaccess中创建一条规则来批量重定向。
旧网址就像这样:https://www.mastersol.gr/ hliakoi-thermosifones-solar / epilektikoi / mastersol-plus-wifi / product / 430-160-2-plus-wifi-mastersol
新网址如下:https://www.mastersol.gr/ iliakoi-thermosifones / epilektikoi / mastersol-plus-wifi / product / 430-160-2-plus-wifi-mastersol
正如你所看到的,我只改变了部分/ hliakoi-thermosifones-solar / to / iliakoi-thermosifones /我需要301将所有/ hliakoi-thermosifones-solar / urls重定向到/iliakoi-thermosifones/。
你可以帮忙吗?
谢谢!
答案 0 :(得分:1)
该任务似乎很简单:您实现的规则仅匹配仍使用旧模式的请求,捕获要更改的令牌之后的内容并将其重定向(或一般地重写)到新组装的URL:
对于外部重定向:
RewriteEngine on
RewriteRule ^/?hliakoi-thermosifones-solar(.*)/?$ https://www.mastersol.gr/hliakoi-thermosifones$1 [R=301,END]
进行内部重写:
RewriteEngine on
RewriteRule ^/?hliakoi-thermosifones-solar(.*)/?$ /hliakoi-thermosifones$1 [END]
如果您使用这些规则收到http状态500(内部服务器错误),那么很可能您使用的是非常旧版本的apache http服务器,并且必须使用[L]
标志而不是{ {1}}标志。
一般说法:您应该始终更喜欢将此类规则放在http服务器主机配置中,而不是使用动态配置文件(“.htaccess”)。这些动态配置文件增加了复杂性,通常是导致意外行为的原因,难以调试,它们确实减慢了http服务器的速度,通常什么都不做,他们可以打开安全恶梦的途径。它们仅适用于不可以访问真正的http服务器主机配置的情况(读取:非常便宜的服务提供商)。