2014-12-06 154 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