我有大约 300 个以下格式的重定向
Redirect 301 /post/My-Blog-Post.aspx https://www.example.com/blog/a-new-post/
这很好用,除了重定向区分大小写并且/post/my-blog-post.aspx
不会重定向。
旧 URL 到新 URL 没有模式,因此这可能必须是每个重定向的标志。
无论如何,如何获取要重定向的 URL?
我有大约 300 个以下格式的重定向
Redirect 301 /post/My-Blog-Post.aspx https://www.example.com/blog/a-new-post/
这很好用,除了重定向区分大小写并且/post/my-blog-post.aspx
不会重定向。
旧 URL 到新 URL 没有模式,因此这可能必须是每个重定向的标志。
无论如何,如何获取要重定向的 URL?
不要认为有办法使Redirect
指令(mod_alias 的一部分)不区分大小写,但是您可以使用 mod_rewrite 标志。您需要从此更改所有重定向:
Redirect 301 /post/My-Blog-Post.aspx https://www.example.com/blog/a-new-post/
至:
RewriteRule ^/?post/My-Blog-Post.aspx$ https://www.example.com/blog/a-new-post/ [L,R=301,NC]
注意NC
标志,意思是“没有案例”。这将匹配任何看起来像/post/my-blog-post.aspx
并忽略大小写的 URI,并将其重定向到https://www.example.com/blog/a-new-post/
.
但是,如果您想让"My-Blog-Post"成为"a-new-post"的变量,我的意思是如果您希望/post/My-Blog-Post.aspx被重定向到/blog/a-new -post/要么/post/ this .aspx into /blog/ this /要么/post/ that .aspx into /blog/ that /甚至/post/任何东西.aspx到/blog/ any /,你可以尝试使用这个.htaccess
隐藏文件中的代码:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^post/([a-z0-9-_]+).aspx$ /blog/$1/ [R=301,NC]