我设计了一个网站,我从数据库中获取数据,我想使用 .htaccess 文件动态创建一个用户友好的 URL。我的网址类型就像
https://example.com/lrc.php?ti=Down+Bad&ar=Taylor+Swift&no=151107
我希望我的网址是
https://example.com/down-bad-lyrics-download-taylor-swift-151107` I am using this
我用过
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-]+)-lyrics-download-([a-zA-Z0-9-]+)-([0-9]+)$ lrc.php?ti=$1&ar=$2&no=$3 [L]
但它不起作用。
如果您不需要将
-
字符替换为 +
,则此正则表达式将重新格式化为其他 URL 结构:
输入:
down-bad-lyrics-download-taylor-swift-151107
rgx:
/^((?:\-?\w+)+)\-lyrics\-download\-((?:\-?\w+)+)-(\d+)$/
输出:
lrc.php?ti=down-bad&ar=taylor-swift&no=151107
说明
((?:\-?\w+)+?)
- 将歌曲标题捕获为重复的字母或数字序列,每个字母或数字由可选的连字符开头\-lyrics\-download\-
- 匹配但不捕获出现在中间的这个序列((?:\-?\w+)+?)
- 将艺术家捕捉为第二个重复的字母或数字序列,每个字母或数字由可选的连字符开头-
- 匹配但不捕获最后一个连字符(\d+)$
- 捕获字符串末尾紧邻的一系列数字作为数字