mod_rewrite规则处理基目录但是第二个规则用于任何子目录?

时间:2017-06-07 22:25:22

标签: php apache .htaccess redirect mod-rewrite

我正在尝试使用mod_rewrite来简化我的网站结构,但事实证明这很困难。

  1. 我需要example.com/inventory/的任何完全匹配才能重定向到example.com/#search/(我有这个工作)。
  2. 我需要有任何与example.com/inventory/(.*)匹配的网址才能正常加载,而不是重定向到/ #search /(我有这个工作)。
  3. 除了以下情况外,我需要将example.com/#search /(.< em>)重定向到example.com/inventory/$1: -example.com/#search/order-miles/ -example.com/#search/order-year/ -example.com/#search/order-price/ example.com/#search/page-(0-9)+/-example.com/#search/makemodel - (。)/
  4. 这是我到目前为止所做的:

    RewriteEngine On 
    RewriteCond %{REQUEST_URI} ^inventory/(.*)$ 
    RewriteRule ^(.*)$ https://example.com/inventory/$1 [R,L]
    
    RewriteCond %{REQUEST_URI} ^#search/(.*)$ 
    RewriteCond %{REQUEST_URI} !^#search/(order-miles|order-year|order-price|makemodel)$ 
    RewriteRule ^(.*)$ https://example.com/inventory/$1 [R,L]
    
    RewriteCond %{REQUEST_URI} ^inventory$ 
    RewriteRule ^(.*)$ https://example.com/#search/ [R,L]
    

    除了第二组条件和相应的规则外,这似乎都有效。

    / #search / order-miles /正确加载(和其他3个子文件夹结构),但其他网址,如:

    https://example.com/#search/nissan-frontier/9017/nissan-frontier/ 应该重定向到 https://example.com/inventory/nissan-frontier/9017/nissan-frontier/ 并没有。

    有没有人看到更好的方法来做到这一点?

0 个答案:

没有答案