如何使用url路径作为脚本的输入?

时间:2010-08-14 20:32:51

标签: php apache url-routing

说我正在推出CMS。每个用户都在domain.com/username/index.php上获得自己的页面。目前我正在考虑让一个新帐户在所述位置创建一个文件夹,并制作一个像这样的索引文件:

<?php
$username=blahblah;
require("../indextemplate.php");
?>

哪种方法可行。每个人都有自己的自定义页面等。对我来说似乎很愚蠢的是,我必须为每个独特的用户制作相同的文件夹和文件。有没有办法使用domain.com/username捕获人。并将它们直接发送到indextemplate.php?

当我输入此内容时,我意识到我可以使用'该页面不存在'重定向,即apache与$ _SERVER [“REQUEST_URI”]结合使用(不确定apache重定向是否会混乱)网址)转到正确的页面。

我想我问的是哪种方法更好(创建数百万个文件夹/页面是解决方案,我发现谷歌搜索,但它似乎真的更糟)。他们是第二种选择的可怕下行吗?或许是第三种方式。

3 个答案:

答案 0 :(得分:1)

如果要使用这些网址重定向,请使用.htaccess文件。

基本上.htaccess可以告诉服务器将 example.com/user/Idiomatic 视为 example.com/index.php?q=user&name=Idiomatic ,然后通过这些$ _GET变量加载数据的所有php / mysql。许多CMS都像Drupal那样使用它。

http://en.wikipedia.org/wiki/Rewrite_engine

每次创建一个新文件毫无意义,将创建许多文件的方式。

答案 1 :(得分:0)

可能是,

<?php
$username=blahblah;
require("../indextemplate.php?username=".$username);
?>

然后,我猜您需要在 indextemplate 脚本中使用$ _GET ['username']。托盘吧!

答案 2 :(得分:0)

查看mod_rewrite

例如,您有user.php:

$username = $_GET['username'];
require("../indextemplate.php");

重写可以配置如下:

RewriteEngine On
RewriteRule ^(\w+)/?$ user.php?username=$1 [L]