使用.htaccess重定向一个,两个或三个变量

时间:2012-08-21 04:59:05

标签: apache .htaccess mod-rewrite

如何使用一个,两个或三个变量创建干净的URL?

我希望domain.com/mypage指向index.php?page = mypage和 domain.com/mypage/myproduct重定向到index.php?page = mypage& var2 = myproduct和domain.com/mypage/myproduct/detail重定向到index.php?page = mypage& var2 = myproduct& var3 = detail。所以有些页面有三个变量,其他页面只有一个或两个。

这是我正在使用的.htaccess(它包括我在htaccess rewrite pass two variables or one depending if both are available?找到的部分):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteRule ^([^/]+)(/([^/]+))? index.php?page=$1&var1=$3 [L,QSA]

它适用于带有一个或两个变量的链接。如何使其适用于三个(或更多)变量。

1 个答案:

答案 0 :(得分:0)

最简单的方法就是单独完成每一项:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /index.php?page=$1&var1=$2&var2=$3 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?page=$1&var1=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^([^/]+)/?$ /index.php?page=$1 [L,QSA]