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


Generating Static Pages - Understanding URL request

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

该应用程序的后端在PHP/MMySQL上运行。因此,我想使用PHP来生成这些页面(这是正确的方法吗?)。我猜PHP会采用url的结构,例如www.xxxx.com/viewer/**venue**/**id**,其中***中的部分是可变的。我如何让PHP基于这些路由请求?

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

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

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

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

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

取决于您的web服务器。

如果您将PHP5-FPM与Nginx:一起使用

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)之后看到一个包含所有值的数组。