2014-12-06 152 views
0

有什么方法可以让我有好看的URL在PHP?任何默认的PHP的网址是这样的:http://example.com/something/?post=something但有可能有它是这样的:http://example.com/something/user是否可以删除后=不使用的.htaccess如何有干净的URL在PHP

下面是一些示例代码,我一直在努力,这在帖子的点击它会访问我的数据库,并加载内容:

<?php 

if(!isset($_GET['post'])) { 
    $q = mysql_query("SELECT * FROM posts WHERE postID='something'"); 
} else { 
    $id = $_GET['post']; 
    $id = mysql_real_escape_string($id); 
    $q = mysql_query("SELECT * FROM posts WHERE postID='$id'"); 
} 

$p = mysql_fetch_object($q); 

?> 

谢谢您的时间!

+3

了解URL Rewritin用的.htaccess – 2014-12-06 09:59:00

+0

Eiter使用的.htaccess规则或如果您正在使用WordPress的工作,你可以深入到http://codex.wordpress.org/Rewrite_API,这是的.htaccess – pbaldauf 2014-12-06 10:02:27

+0

的包装我们不要使用WordPress,我们有我们自己的CMS。 – Arqetech 2014-12-06 10:05:01

回答

1

得到干净的网址,你必须使用mod_rewrite模块,但你可以尽量减少它的使用,如果你把URL解析到自己的脚本,只有一个切入点。看看它是如何在WordPress做:

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.php [L] 
</IfModule> 

所以,如果有中请求的URL没有真正的文件或目录,每一个请求重定向到index.php,然后通过一些内部路由映射脚本解析。

有这样的剧本在similar question一个例子。

+0

是的;有一个谷歌的“PHP URL路由”;你会发现一堆体面的解释/教程,讲解如何在代码中完成调度的单个入口点。 – 2014-12-06 10:03:21

+0

是.htaccess还是PHP? – Arqetech 2014-12-06 10:06:59

+0

此代码应该在.htaccess中。 – saNs 2014-12-06 10:09:31

0

我建议有干净的URL使用PHP框架,其默认有这个能力之一。 如果你想使用纯PHP,你应该在项目中使用路由器,这意味着你应该写自己的PHP框架。 你曾经使用任何PHP框架? 我建议使用laravel或cakephp作为学习php框架的入口点。

+0

我从来没有使用过任何PHP框架,甚至不是Larvel。 – Arqetech 2014-12-06 10:23:08

+0

我建议开始使用laravel。它易于使用,也易于学习。 laravel有这么多的视频教程和简单的文档来学习。如果你以前没有使用任何框架,开始编写自己的框架并不明智。 – mhndev 2014-12-06 10:27:19