.htaccess htaccess mod_rewrite如何重写空变量

.htaccess htaccess mod_rewrite如何重写空变量,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我试图创建一个htaccess文件来重写,例如从/index.php?type=car&model=audi&color=990000&year=1995到/index/car/audi/990000/1995的URL 目前,我使用以下方法: Options +FollowSymLinks RewriteEngine On RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+) $1.php?type=$2&model=$3&c

我试图创建一个htaccess文件来重写,例如从/index.php?type=car&model=audi&color=990000&year=1995到/index/car/audi/990000/1995的URL

目前,我使用以下方法:

Options +FollowSymLinks
RewriteEngine On

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/([^/]+) $1.php?type=$2&model=$3&color=$4&year=$5

问题是,当您填写所有变量时,它可以正常工作,但是当您想要“奥迪”的所有汽车并保持颜色和年份为空时,页面崩溃。我如何才能更改mod,使页面不会崩溃,他在PHP中获得正确的变量?

乍一看,我会将规则中的+改为*。+表示一个或多个,而*表示零个或多个。此外,您可能需要将/设置为可选

编辑: 试试这个:

RewriteRule ^([^/]+)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*) $1.php?type=$2&model=$3&color=$4&year=$5