Htaccess 使用文件夹重定向
Htaccess redirect with folders
我正在尝试创建一个包含大量重定向 (301) 的列表,并且不想手动更改顺序。不幸的是,某些 301 重定向并没有真正起作用:
RewriteEngine on
Redirect 301 "/en/kontakt/" https://www.example.com/kontakt/
Redirect 301 "/en/kontakt/132-start-page-en/gaesteinformation-en/" https://www.example.com/kontakt/'''
第一个重定向有效,第二个给出 404。
200,https://,www.example.com/kontakt/
404,https://,www.example.com/kontakt/132-startseite-de/gaesteinformation-de/
如果我调换顺序,就可以了。问题是什么?你有什么想法吗?
此致
鲁迪
mod_alias Redirect
指令是前缀匹配,匹配后的所有内容都被复制到目标 URL 的末尾。因此,您的第一条规则匹配两个请求(第二条规则不执行任何操作)并且在请求 /en/kontakt/132-start-page-en/gaesteinformation-en/
的情况下,/en/kontakt/
之后的所有内容都附加到目标 [=35] 的末尾=].
您需要:
- 更改指令的顺序(如您建议的那样),使更具体的指令排在第一位。
或者,
- 更改指令以使用
RedirectMatch
,它匹配正则表达式而不是简单的前缀匹配。
例如:
RedirectMatch 301 ^/en/kontakt/$ https://www.example.com/kontakt/
RedirectMatch 301 ^/en/kontakt/132-start-page-en/gaesteinformation-en/$ https://www.example.com/kontakt/
可以组合成一个指令:
RedirectMatch 301 ^/en/kontakt/(132-start-page-en/gaesteinformation-en/)?$ https://www.example.com/kontakt/
我正在尝试创建一个包含大量重定向 (301) 的列表,并且不想手动更改顺序。不幸的是,某些 301 重定向并没有真正起作用:
RewriteEngine on
Redirect 301 "/en/kontakt/" https://www.example.com/kontakt/
Redirect 301 "/en/kontakt/132-start-page-en/gaesteinformation-en/" https://www.example.com/kontakt/'''
第一个重定向有效,第二个给出 404。
200,https://,www.example.com/kontakt/
404,https://,www.example.com/kontakt/132-startseite-de/gaesteinformation-de/
如果我调换顺序,就可以了。问题是什么?你有什么想法吗?
此致 鲁迪
mod_alias Redirect
指令是前缀匹配,匹配后的所有内容都被复制到目标 URL 的末尾。因此,您的第一条规则匹配两个请求(第二条规则不执行任何操作)并且在请求 /en/kontakt/132-start-page-en/gaesteinformation-en/
的情况下,/en/kontakt/
之后的所有内容都附加到目标 [=35] 的末尾=].
您需要:
- 更改指令的顺序(如您建议的那样),使更具体的指令排在第一位。
或者,
- 更改指令以使用
RedirectMatch
,它匹配正则表达式而不是简单的前缀匹配。
例如:
RedirectMatch 301 ^/en/kontakt/$ https://www.example.com/kontakt/
RedirectMatch 301 ^/en/kontakt/132-start-page-en/gaesteinformation-en/$ https://www.example.com/kontakt/
可以组合成一个指令:
RedirectMatch 301 ^/en/kontakt/(132-start-page-en/gaesteinformation-en/)?$ https://www.example.com/kontakt/