dal*_*ale 11 php string .htaccess mod-rewrite
我使用.htaccess,我有一个规则,允许我在我的数据库中动态查找产品.
所以有人可以点击这样一个链接:
www.domain.com/product/modular-plastic-lunch-set.html
Run Code Online (Sandbox Code Playgroud)
并看到产品.现在我的问题是,当我使用时
www.domain.com/product/Modular-Plastic-Lunch-Set.html
Run Code Online (Sandbox Code Playgroud)
这是行不通的,
为什么?这是我的规则:
RewriteEngine On
RewriteRule ^product/([a-z0-9\-]+).html$ products.php?name=$1
Run Code Online (Sandbox Code Playgroud)
Boo*_*eus 12
它不起作用,因为你没有A-Z或[NC]标志.
使用[NC]标志会使RewriteRule以不区分大小写的方式匹配.也就是说,它不关心字母在匹配的URI中是以大写形式还是小写形式出现.
RewriteRule ^product/([a-z0-9\-]+).html$ php.php?name=$1 [NC,L,QSA]
Run Code Online (Sandbox Code Playgroud)
要么
RewriteRule ^product/([a-zA-Z0-9\-]+).html$ php.php?name=$1 [L,QSA]
Run Code Online (Sandbox Code Playgroud)
我加了L:
[L]标志使mod_rewrite停止处理规则集.在大多数情况下,这意味着如果规则匹配,则不会处理其他规则.这对应于Perl中的最后一个命令,或C中的break命令.使用此标志指示应立即应用当前规则而不考虑其他规则.
和QSA标志:
当替换URI包含查询字符串时,RewriteRule的默认行为是丢弃现有查询字符串,并将其替换为新生成的查询字符串.使用[QSA]标志会导致组合查询字符串.
有关标志的更多信息,请访问:http://httpd.apache.org/docs/2.3/rewrite/flags.html
提示:如果您正在寻找使用该名称的产品,您可能会在查询中看到延迟,特别是如果您没有索引.你应该在丑陋之前调查一下.
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |