我正在尝试将这样的网址转换http://example.com/page.php?user=x&post=x
为http://example.com/blogs/user/post
这是我到目前为止的代码,不确定是否遗漏了或者做错了什么,因为到目前为止还没有成功。
RewriteEngine On
RewriteRule ^blogs/([a-z0-9\-]+)/([0-9]{1,11})/$ page.php?user=$1&post=$2 [L]
编辑:进行了一些修改后,它现在返回错误404错误page.php
,提示未找到。我肯定知道文件在那里。
第2次编辑:已解决404问题。
该post
参数也是可选的。
user
可以混合使用A-z0-9(无字符数限制)
post
,只能是0-9,最多11个字符
尝试
RewriteRule ^blogs/?([a-z0-9]*)?/?$ page.php?user=$1&post=$2 [NC,L]
该?
指示匹配是可选的。因此对于/?
斜杠是可选的。
在第二节之后 ^blogs/?
([a-z0-9]*)?
如果从上面删除?
和*
,将变成这样:
RewriteRule ^blogs/?([a-z0-9])/?$ page.php?user=$1&post=$2 [NC,L]
的user
将不再是可选的,并且必须完全匹配。例子http://blogs/John
; 如果您将+
*替换为如下所示:
RewriteRule ^blogs/?([a-z0-9]+)/?$ page.php?user=$1&post=$2 [NC,L]
将user
需要至少1个字符相匹配。例如 :http://blogs/J
如果您将*
星号如下所示:
RewriteRule ^blogs/?([a-z0-9]*)/?$ page.php?user=$1&post=$2 [NC,L]
它可以匹配零长度。例如:http://blogs/
。几乎像可选的。
如果比赛失败,您将获得 404 Not found error
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句