如何使用.htaccess文件重写url?

问题描述 投票:0回答:1

我设计了一个网站,我从数据库中获取数据,我想使用 .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]

但它不起作用。

regex .htaccess url-rewriting
1个回答
0
投票

如果您不需要将

-
字符替换为
+
,则此正则表达式将重新格式化为其他 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+)$
    - 捕获字符串末尾紧邻的一系列数字作为数字
© www.soinside.com 2019 - 2024. All rights reserved.