htaccess一个或两个参数

时间:2016-02-29 07:38:21

标签: .htaccess

我想要一个这样的网址:

www.mywebsite.com/user

所以我这样做:

RewriteRule ^([a-zA-Z0-9_/-]+)$ profile.php?user=$1

它正在运作。

但有时我需要一个secound参数,例如:

www.mywebsite.com/user/22 = user?id=22

或者我需要一个像这样的secound参数:

www.mywebsite.com/user/images = user?pg=images

请注意,我可以为不同的操作设置用户/ ID或用户/ pg。

任何想法我该怎么做?

2 个答案:

答案 0 :(得分:2)

你可以有3个这样的规则:

Options -MultiViews
RewriteEngine On 

# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

# to handle /user/22
RewriteRule ^user/(\d+)/?$ user.php?id=$1 [NC,L,QSA]

# to handle /user/images
RewriteRule ^user/(\w+)/?$ user.php?pg=$1 [NC,L,QSA]

# existing rule
RewriteRule ^([\w-]+)/?$ profile.php?user=$1 [L,QSA]

答案 1 :(得分:1)

这很容易:

RewriteRule ^user/([0-9]+)$ index.php?user=$1
RewriteRule ^user/([a-zA-Z0-9_/-]+)$ index.php?pg=$1