Options +FollowSymLinks
Options +Indexes
RewriteEngine on
RewriteBase /
RewriteRule ^haveg/employer/([0-9]+)/(.*) haveg/employer.php?msg_id=$1
使用
时效果很好http://localhost/haveg/employer/7003/the-message-title
or
http://localhost/haveg/employer/7003/
问题出在http://localhost/haveg/employer/7003
,因为我在最后删除了正斜杠。它给出了页面未找到的错误。
答案 0 :(得分:2)
RewriteRule ^ haveg / employer /([0-9] +)/?(。*)hasg / employer.php?msg_id = $ 1
我认为添加问号应该可以匹配。
答案 1 :(得分:0)
尝试将最后一行更改为
RewriteRule ^haveg/employer/([0-9]+)([^0-9]*) haveg/employer.php?msg_id=$1
这应该接受这两种情况。
答案 2 :(得分:0)
我建议您添加另一个RewriteRule
以明确您的意图。在此代码中,当URL以数字后跟可选斜杠(当msg_id
查询字段为空时)时,第一个规则处理这种情况,第二个规则适用于数字后面有消息的情况。
RewriteRule ^haveg/employer/([0-9]+)/?$ haveg/employer.php?msg_id=
RewriteRule ^haveg/employer/([0-9]+)/([^/]+)$ haveg/employer.php?msg_id=$1 [L]