【问题标题】:htaccess rewrite-rule not matchinghtaccess 重写规则不匹配
【发布时间】:2015-09-24 23:21:04
【问题描述】:

我有一个问题,因为我改变了我的主机。新的托管包存在一个简单规则的问题,该规则在完美之前有效。

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

# NOT MATCHING
RewriteRule ^pro/(.*)/(.*)/$ pro.php?id=$1&p=$2 [QSA,L]

# MATCHING
RewriteRule ^(.*)/(.*)/$ pro.php?id=$1&p=$2 [QSA,L]

当我打电话给 f.e. “www.example.com/pro/350/658a/”第一条规则不是machting,而是第二条。有人知道为什么它不能在新的托管包上工作吗?

【问题讨论】:

    标签: apache .htaccess ubuntu mod-rewrite


    【解决方案1】:

    .* 几乎可以匹配所有内容。试试这些规则:

    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    
    # NOT MATCHING
    RewriteRule ^pro/([^/]+)/([^/]+)/?$ pro.php?id=$1&p=$2 [QSA,L]
    
    # MATCHING
    RewriteRule ^([^/]+)/([^/]+)/?$ pro.php?id=$1&p=$2 [QSA,L]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-01
      • 2011-11-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多