动态php短网址

时间:2016-10-05 12:53:53

标签: php short-url dynamic-url

所以我从2006年开始在PHP中使用过程编程风格。 但是在过去4年多的时间里,他们错过了很多时间,并且做得更好。

最近,我开始更多地承认面向对象编程。

最让我注意的是MVC风格的组织和简短的网址。

而不是网址" index.php?page = profile& member = 1",它将是" page / profile / member / 1"。

我尝试使用各种资源来学习OOP和MVC架构,但对我来说仍然有点太多了。即使一个月后!

我总是只使用基本功能(etc){},if,else,和/或语句和SQL查询来完成工作。到目前为止,这些知识主要涵盖了我所需要的一切。

我想知道是否有办法使用我的基本程序编程风格并仍能实现缩短的网址?

我已尝试过以下方法

的.htaccess

RewriteEngine On
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php?page=$1 [L]

的index.php

<?php

$links = parse_ini_file('links.ini');

if (isset($_GET['page']) && array_key_exists($_GET['page'], $links)) {
    require $links[$_GET['page']];
}
else {
    echo '
    Home page or unknown link
    ';
}

links.ini

members  = pages/members.php
profile  = pages/profile.php

此方法仅用于缩短网址,但我不知道如何使用profile / user / 1又名index.php?page = profile&amp; user = 1 (用户变量是数据库查询)

任何帮助都将非常感谢!!!

1 个答案:

答案 0 :(得分:0)

您可以使用所谓的front controller来完成此操作。这个Sitepoint article可以帮助这个概念陷入困境,但它并不一定是面向对象的。

基本上,您只需将所有请求定向到index.php,而不是进行任何实际重写:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php

现在,在index.php内,您可以使用parse_url选择请求,并根据需要处理请求。