.htaccess - 如何使用 .htaccess mod_rewrite 制作一个 seo 友好的 url
问题描述
我正在尝试使用 .htaccess 文件创建一个对 SEO 友好的 URL。
我要更改的网址如下所示:
https://www.example.com/category/?title=a+really+really+long+title
我想要的是:
https://www.example.com/category/a+really+really+long+title/
我努力了:
RewriteEngine On
RewriteRule ^/category/?title=(.+)$ ^/category/$1/ [NC]
但它并没有给我想要的结果。非常感激任何的帮助!
解决方案
RewriteEngine On
RewriteCond %{QUERY_STRING} ^title\=(.+)$ [NC]
RewriteRule ^/?category/?$ /category/%1 [NC,R,L,QSD]
我们首先使用 . 检查是否存在查询字符串
RewriteCond
。如果匹配^title\=(.+)$
,则表示如果有一个带有 key 的查询字符串title
,则捕获它的值。使用 RewriteRule,如果请求 URI 有一个
category
. 如果是,则将其重写为在查询字符串的重写条件中匹配的键的值在/category/%1
哪里。这是对正则表达式(查询字符串)中捕获的组号的反向引用(向下滚动一点)。%1
title
%1
请注意,如果您想对查询字符串中的任何键值对执行此操作,请更改
title
为\w+
或[a-zA-Z0-9]+
更准确。