生成静态页面 - 了解URL请求

时间:2014-10-07 14:53:10

标签: php mysql

我有大量的内容存储在MySQL数据库中,它为我的应用程序提供支持。我想在线提供这些信息,为非应用用户提供内容,并提高我的网站排名。

应用程序的后端在PHP / MySQL上运行。因此,我想使用PHP来生成这些页面(这是正确的方法吗?)。我猜PHP会采用url的结构,例如{**}} ** **中的部分是可变的。如何让PHP根据这些来路由请求?

2 个答案:

答案 0 :(得分:1)

可能最好和最有效的方法是在Apache中使用URL重写。将以下代码添加到根文件夹中的.htaccess文件(如果不存在,则创建一个):

RewriteEngine On
RewriteRule ^/viewer/([^/]+)/([^/]+)/?$ viewer.php?venue=$1&id=$2 [L]

现在,在根目录中创建一个viewer.php文件。然后,您可以将变量作为$_GET超全局的一部分进行访问,如下所示:

$venue = $_GET['venue'];
$id = $_GET['id'];

请注意,您应该在代码中使用SQL注入,并相应地清理这些输入。

答案 1 :(得分:0)

取决于您的网络服务器。

如果你正在使用带有Nginx的PHP5-FPM:

location /viewer {
  fastcgi_pass unix:/var/run/php5-fpm.sock;
  fastcgi_param SCRIPT_FILENAME /path/to/viewer.php;
  include fastcgi_params;
}

可能会这样做。然后在PHP中,您需要在/ viewer之后展开$ _SERVER [' REQUEST_URI']路径并根据它运行逻辑。

示例:

<?
$parts = explode("/", $_SERVER['REQUEST_URI']);
$i=0;
while($parts[$i] != 'viewer'){
  unset($parts[$i]);
  $i++;
}
if($parts[$i] == 'viewer') unset($parts[$i]);
$parts = array_values($parts);
var_dump($parts);
?>

您应该在/ viewer /(场地和ID)之后看到所有值的数组。