缺少第二个变量时,.htaccess重写问题

时间:2012-06-14 10:34:02

标签: .htaccess

我写了这个短片的php代码,需要2个变量名和id,现在代码本身按预期工作,不是我的问题,问题是我想从'http缩短这个文件的链接://www.mypage.org/folder/index.php?name = name& id = 0'到'http://www.mypage.org/folder/name;0',如下:

RewriteRule ^([a-zA-Z0-9]+);(.*)$ index.php?name=$1&id=$2

但如果有人输入“http://www.mypage.org/folder/name”这样的链接,而不是“;”分隔符,他们得到404页。

有没有办法编写一种if语句来检查没有';'的链接?

php页面可以通过默认为“0”以及缺少名称来处理缺少的ID。

提前致谢!

1 个答案:

答案 0 :(得分:1)

;0部分或网址设为可选:

RewriteRule ^([a-zA-Z0-9]+)(?:;(.*))?$ index.php?name=$1&id=$2

或者像这样(如果以上在Apache中不起作用)

RewriteRule ^([a-zA-Z0-9]+)(;(.*))?$ index.php?name=$1&id=$3