与htaccess的短链接 - 两个参数

时间:2015-05-13 16:57:40

标签: regex apache .htaccess mod-rewrite

我没有问题,我不确定如何解决。我正在使用htaccess文件将我的URL重写为更短的链接。例如,我正在使用此规则:

RewriteEngine On
RewriteRule ^client/(.*)/?$ pages/client.php?action=$1 [L,QSA]

但是我也希望将第二个参数传递给该URL,所以我做了这个:

RewriteRule ^client/(.*)/(.*)/?$ pages/client.php?action=$1&view=$2 [L,QSA]

所以我可以访问以下网址:

/client/action_1/view_2

没有任何问题,但是当我跳过第二个参数并且只访问了:

/client/action_1/
然后它是impossilbe并导致404。

如何更改RewriteRule以便我可以同时访问:

/client/action_1/view_2
/client/action_1/

它将重写为:

pages/client.php?action=$1&view=$2

1 个答案:

答案 0 :(得分:0)

您可以有2个单独的规则来处理2个干净的网址:

RewriteEngine On

RewriteRule ^client/([^/]+)/?$ pages/client.php?action=$1 [L,QSA,NC]

RewriteRule ^client/([^/]+)/([^/]+)/?$ pages/client.php?action=$1&view=$2 [L,QSA,NC]