htaccess可选参数

时间:2013-02-23 19:30:57

标签: .htaccess rewrite

我有一个非常简单的重写规则。我希望URL中的第二个参数是可选的,但是当我必须在URL中传递它时:

RewriteEngine On
RewriteRule ^signup/([^/]*)/([^/]*)/$ /signup/index.php?e=$1&s=$2 [L]

我有URL / signup / PARAMETER / OPTIONAL-PARAMETER /

如果我关闭第二个参数,如何才能使网址正常工作?

2 个答案:

答案 0 :(得分:1)

只需在其后添加一个参数重写:

RewriteEngine On
RewriteRule ^signup/([^/]*)/([^/]*)/$ /signup/index.php?e=$1&s=$2 [L]

# single parameter
RewriteRule ^signup/([^/]*)/$ /signup/index.php?e=$1 [L]

答案 1 :(得分:0)

我使用了这个问题的答案htacess and two post parameters ....感谢aeshabana提示!

我还需要在URLS中添加一个斜杠,所以这是我的最终.htaccess

RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]

RewriteRule %{REQUEST_FILENAME} !-d
RewriteRule %{REQUEST_FILENAME} !-f
RewriteRule ^signup/(.+)/$ /signup/index.php?uri=$1 [QSA,L]