使用mod_rewrite创建RESTful URL格式

时间:2010-08-18 19:43:29

标签: apache .htaccess mod-rewrite

我有一个网页http://mydomain.com/form.php?id=123, 我需要为旧功能保留此格式,并实现新功能,以便用户可以像http://mydomain.com/123一样访问此页面。

  1. 因此,客户端会看到此http://mydomain.com/123
  2. 服务器将理解为旧版本http://mydomain.com/form.php?id=123
  3. 因此,我不必更改旧功能。 我知道这可以通过HTaccess规则来实现。但不知道怎么做。 请帮忙。感谢。

1 个答案:

答案 0 :(得分:4)

这应该可以为你处理

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ form.php?q=$1 [L,QSA]

!-f排除任何已存在的文件(因此直接命中/form.php不会被重写),!-d会排除任何存在的目录(如果你有一个真实的/123/在您的网站上它不会被重写),否则将其他所有内容重定向到您的form.php脚本。

如果您只想重定向纯数字网址,那么上面的mhitza评论就是您想要的。