htaccess 重写查找 slug 的一部分并将其删除
htaccess rewrite find part of the slug and remove it
我有这样的帖子:
http://example.com/blog/post-title
我想将其转换为
http://example.com/post-title
使用 htaccess
我试过了:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com/blog/([^\s\?]+)\s [NC]
RewriteRule ^(.*)$ http://example.com/ [L,R=301,NC]
在这种情况下,您可以指定两个 捕获组(使用括号)并且仅return第二个两组。
示例:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(blog)/(.+) http://example.com/
</IfModule>
重写规则的工作原理如下:
如果...
- url 以
blog
开头
- 其次是
/
- 后跟 至少一个或多个字符
然后重写 URL,使域后跟 /
,然后是在第二次捕获中捕获的 一个或多个字符组.
N.B. 您不需要 [R=301]
标志,因为提供了完整的重定向(即以http://
或 https://
协议)隐含地表明这将是一个 301 重定向.
我有这样的帖子:
http://example.com/blog/post-title
我想将其转换为
http://example.com/post-title
使用 htaccess
我试过了:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com/blog/([^\s\?]+)\s [NC]
RewriteRule ^(.*)$ http://example.com/ [L,R=301,NC]
在这种情况下,您可以指定两个 捕获组(使用括号)并且仅return第二个两组。
示例:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^(blog)/(.+) http://example.com/
</IfModule>
重写规则的工作原理如下:
如果...
- url 以
blog
开头
- 其次是
/
- 后跟 至少一个或多个字符
然后重写 URL,使域后跟 /
,然后是在第二次捕获中捕获的 一个或多个字符组.
N.B. 您不需要 [R=301]
标志,因为提供了完整的重定向(即以http://
或 https://
协议)隐含地表明这将是一个 301 重定向.