.htaccess 参数中的破折号



我有以下htaccess规则:

RewriteRule ^listen/([^/]*)-([^/]*)/$ listen.php?pl=$1&id=$2 

有时第二个参数(id(中有一个破折号,我得到404未找到,例如:

mysite.com/listen/something-293Xff4-yZ( 身份证是293Xff4-yZ(

问题是当我尝试获取 ID 参数(使用$_GET['id'](时 - 我只得到 ID 的第一部分(破折号之前 -293Xff4(

知道在这种情况下如何获得ID的完整部分吗?

谢谢!

您可以在RewriteRule中使用此正则表达式:

RewriteRule ^listen/([^-]+)-([^/]+)/?$ listen.php?pl=$1&id=$2 [L,QSA,NC]

还建议在 .htaccess 顶部使用Options -MultiView,因为它可能会导致某些默认启用它的 Apache 版本出现问题。

最新更新