参考: 多重规则Apache重写
虽然这对多层次的项目钻取效果很好,但我仍然需要一个admin.php页面来在规则之外运行。 目前在这套规则下,标准页面/脚本不会运行。
思考/想法?
RewriteRule ^mr/index.php$ - [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4&product=$5 [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3&product_sub_category=$4 [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ /mr/index.php?product_group=$1&product_family=$2&product_category=$3 [L] RewriteRule ^([^/]*)/([^/]*)/?$ /mr/index.php?product_group=$1&product_family=$2 [L] RewriteRule ^([^/]*)/?$ /mr/index.php?product_group=$1 [L]
更新:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ - [L] RewriteRule ^index.php$ - [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$ index.php?n_section=$1&n_product_group=$2&n_product_family=$3&n_product_category=$4&n_product_subcategory=$5 [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)/?$ index.php?n_section=$1&n_product_group=$2&n_product_family=$3&n_product_category=$4 [L] RewriteRule ^([^/]*)/([^/]*)/([^/]*)/?$ index.php?n_section=$1&n_product_group=$2&n_product_family=$3 [L] RewriteRule ^([^/]*)/([^/]*)/?$ index.php?n_section=$1&n_product_group=$2 [L] RewriteRule ^([^/]*)/?$ index.php?n_section=$1 [L]
将这些行放在顶部,在现有的RewriteRule行之上。 它要做的是检查请求的文件是否存在,如果存在,将跳过重写过程的其余部分,忽略所有后续规则。
RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^ - [L]