如何为任何给定的路径名​​URL加载特定页面

时间:2013-12-19 01:17:02

标签: php ajax web server-side web-hosting

假设我有一个名为www.mysite.com的网页


如何在加载页面时将其设置为www.mysite.com/58640(或任意随机数),重定向到www.mysite.com/myPHPpage.php?id=58640


我对网站开发很陌生,所以我甚至不知道我是否正确地提出这个问题或者在其中标注了哪些语言......


如果有助于我使用UNIX服务器进行NetWorkSolutions的虚拟主机

1 个答案:

答案 0 :(得分:3)

将此添加到您网站主目录中的.htaccess文件中。

RewriteEngine on
RewriteBase /
RewriteRule ^([0-9]+)$ myPHPpage.php?id=$1 [L]

简要说明:它说匹配:

  • ^从查询/页面开始
  • [0-9]匹配数字
  • +任何一个或多个匹配
  • $页面请求

括号部分说要找那个位并存储它。然后我可以在新网址中引用这些替换变量。如果我有一个以上的括号组,那么我会使用$ 2,$ 3等等。

如果您遇到.htaccess文件问题,请参阅this,因为权限可能会导致问题。

如果您需要捕获其他字符,例如字母数字字符,您可能需要稍微探索一下正则表达式。你可以做以下事情:

RewriteRule ^(.+)$ myPHPpage.php?id=$1 [NC, L]

与[a-zA-Z0-9]之类的东西相匹配或更具体。

修改:和@Jonathon有一点意见。在你的PHP文件中,无论你处理$ _GET ['id'],如果在类似sql查询或邮件的任何东西中使用它,请务必清理它。由于您只使用数字使其变得简单:

$id = (int)$_GET['id']; // cast as integer - any weird strings will give 0

请记住,如果你不打算只使用数字,那么你将不得不寻找一些消毒功能(谷歌上有很多 - 搜索'php sanitize')以确保你不会使用sql注入攻击。