【发布时间】:2016-03-31 13:46:46
【问题描述】:
我有一个.htaccess 文件,供我的 osCommerce 网站上安装的高级 SEO URL php 系统使用。
它具有以下规则,在大多数情况下都可以正常工作,但会从我的 GET 参数中删除句点:
RewriteRule ^([a-z0-9/-]+)-c-([0-9_]+).html$ index.php [NC,L,QSA]
RewriteRule ^([a-z0-9/-]+)-m-([0-9]+).html$ index.php [NC,L,QSA]
所以网址是这样的:
http://example.com//index.php?cPath=44_95&page=1&range=1.99_2.99
根据规则重写,1.99_2.99 变为 199_299。
如何安全度过经期? (即,不会引起一些随机的副作用)
【问题讨论】:
-
使用字符类
[.] -
@stribizhev 谢谢,但如何将其添加到我的规则中?我是一个正则表达式的菜鸟......
-
我认为您的问题与您的模式中未转义的点有关。如果您不确定是否使用 1 个或两个反斜杠,请使用字符类。将
.html替换为[.]html。但是,我不确定这就是您所需要的。 -
你只需要使用一个反斜杠
\. -
您的重写与您的示例 URL 不匹配,并且它们没有去除“。”特点。你问错问题了。
标签: php regex apache .htaccess mod-rewrite