用.htaccess重写URL

无效的语法

我正在尝试将这样的网址转换http://example.com/page.php?user=x&post=xhttp://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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章