我是mod_rewrite或Regex的真正新手。 因此,我只需要你帮助解决以下问题。
我有一个看起来像的PHP页面:
stuff.php?id=1&text=2
我知道想要看起来像
stuff/2.html
你是否有人为htaccess设置了RewriteRule行,让它看起来像这样?
提前多多感谢!
答案 0 :(得分:1)
此特定网页的重写规则:
RewriteRule ^stuff/2\.html$ stuff.php?id=1&text=2
如果2
应该是动态的:
RewriteRule ^stuff/([0-9]+)\.html stuff.php?id=1&text=$1
一点解释:
^
和$
代表字符串的开头和结尾,因此我们不匹配longstuff/2.html.php
。\.
,否则它在RegEx(“任何字符”)中具有特殊含义$n
(n
=捕获组数量,在本例中为{{1} })1
是一个字符类,匹配类的一个字符,在本例中为数字[0-9]
表示“一个或多个”答案 1 :(得分:0)
以下是将stuff/2.html
重定向到stuff.php?id=1&text=2
RewriteRule ^stuff/([\d]+)\.html$ stuff.php?id=1&text=$1 [L]
注意[\d]+
只接受数字,如果您想允许使用字母和插入符号,请使用以下规则:
RewriteRule ^stuff/([\w-]+)\.html$ stuff.php?id=1&text=$1 [L]