【发布时间】:2018-08-17 17:15:25
【问题描述】:
我有:
RewriteRule ^([a-z0-9-]{29,}+).php?$ _content.php?_p1=$1 [QSA,L]
不是参数至少为 29,有没有办法我们可以替换它以使其与最少出现 3 个连字符 (-) 的条件相匹配?
'-' 每个网址至少 3 个... ?
【问题讨论】:
标签: regex .htaccess mod-rewrite url-rewriting
我有:
RewriteRule ^([a-z0-9-]{29,}+).php?$ _content.php?_p1=$1 [QSA,L]
不是参数至少为 29,有没有办法我们可以替换它以使其与最少出现 3 个连字符 (-) 的条件相匹配?
'-' 每个网址至少 3 个... ?
【问题讨论】:
标签: regex .htaccess mod-rewrite url-rewriting
【讨论】:
\.php。实际上,你真的需要逃避的远不止这些……那一行的其余部分都是文字值吗?
试试这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([a-z0-9-]{29})(\.php)?$
RewriteCond %{REQUEST_URI} ^/(([^-]*)\-){3,29}(\.php)?$
RewriteRule ^(.*)$ _content.php?_p1=$1 [L]
该代码将匹配任何包含 [a-z0-9-] 和 29 长度、带有或不带有 .php 并且至少有 3 连字符的 URI。
【讨论】: