.htaccess文件中匹配所有英字母、数字以及 ()*\+/:._+-|[] 这些符号的正则应该怎么写?我是这样写的,但出错:
RewriteRule ^prodocts/([a-z0-9\()\+/._-]*)/$ product.php\?p=$1 [NC]

解决方案 »

  1.   

    如果不论什么符号,都是这样的规则,那可以试试这样
    RewriteRule ^ prodocts/([\W|\w]+)\/$    product\.php\?p=$1 [L]
      

  2.   

    RewriteRule ^prodocts/([a-z0-9\(\)\+\/\._-]*)/$ product\.php\?p=$1 [NC]
      

  3.   

    直接 .* 就可以了
    . 匹配除了换行符以外所有的字符,包括空格
    * 重复0次或更多次
    RewriteRule ^prodocts\b(.*)?$ product.php\?p=$1 [NC]
      

  4.   

    英文字母及数字,这些非符号的,用\w就行了,如果不放心的话,楼主那个还要加一个A-Z
    其他单词要加\这个转义符号
    但是+好像会被浏览器自动转成url编码哦,,测试一下。。另外,rewrite可以开启rewriteLog,然后用这个来查看跳转日志中是否正确,rewritelevel设置为3就可以了。RewriteLog /var/www/rewrite.log
    RewriteLevel 3然后慢慢调。。