我想将URL格式从:
https://example.com/modules/news/article.php?storyid=224039
自:
https://example.com/news/224039
任何人都可以帮助编写真正的.htaccess代码吗?
谢谢
未经测试:
RewriteEngine On
RewriteBase /
RewriteRule ^news/([0-9]+) /modules/news/article.php?storyid=$1 [NC,L]
NC 标志用于"无大小写"(如果您希望不区分大小写(。如果没有,请删除此标志。 L 是 Last 标志,这意味着它将是在给定重写实例中解析的最后一个规则,因此不使用进一步的重写。这有点违反直觉,因为 Apache 会在重写后从头开始重新读取所有规则,以确保它不必再次重写,并且对于许多人来说,这是一个关于无限重写循环的问题......可能也可以完全省略L标志,但更具表现力。
在 httpd.conf 文件中启用此功能的 Apache 配置中可以省略 RewriteEngine On。最佳做法是在假设发动机打开之前再次戴上它。重写基础/
可能可以省略,这取决于您如何编写 RewriteRule。最后RewriteRule在左侧使用正则表达式,括号存储匹配项,括号定义字符列表,0-9是有效字符,也可以使用d
代替,+
表示匹配1次或更多次。右边的表达式是用什么替换它。前导斜杠可能可以省略。另请注意,由于右侧存在查询字符串,如果左侧存在查询字符串,它将被丢弃。如果要合并查询字符串,请使用表示查询字符串追加的QSA
标志,然后在添加故事 ID 时合并查询字符串。最后,$1
表示使用左侧括号捕获的第一场比赛。