2014-04-25 58 views
0

我從頭創建了一個博客來測試我的PHP/HTML/CSS/Jquery技能等等。所有的事情進展順利,現在我想建立htaccess,因此,當用戶閱讀博客文章的網址讀取使用.htaccess重寫變量到目錄

http://www.mysite.com/blog/post-title-here

,而不是

http://www.mysite.com/blog.php?id=30

這可能嗎?

博客設置是將帖子保存在數據庫中。帖子頁面是基於博客帖子的ID生成的。 PHP通過ID檢索整個帖子,並將其全部推送到一個對象中。所以博客標題是$ blogpost-> title;

+0

你好, 這可以通過使用htaccess文件重新生成你的URL。你只需要爲你想生成的新網址寫一個規則 – KinjalMistry

+0

我不認爲在htaccess中這是可能的,因爲它不知道你的ID /標題關係是什麼。除非你失去了所有博客文章[「id」] => [「title」],那麼我不確定htaccess會如何重寫URL? – MJoraid

+0

這是不可能的最接近它可以讓你是'http:// www.mysite.com/blog/30' htaccess。你將需要使用PHP來做你想做的。 – Howli

回答

0

您必須首先確保您的網站上啓用了mod modrewrite。

其次,帖子的ID必須在url中才能加載帖子。

例如,如果您要重寫

http://www.mysite.com/blog/30/post-title-here 

http://www.mysite.com/blog.php?id=30 

你可以把下面的代碼在你的.htaccess:

RewriteEngine on 
RewriteRule ^blog/(\d+)/.*$ blog.php?id=$1 [L] 
+0

非常感謝這一點。這接近我正在尋找的東西。 有沒有什麼PHP明智的更改URL或是否有必要在其中有帖子ID。 我問的唯一原因是因爲我的WordPress的網站設置,使每個博客文章是http://www.wordpressisshit.com/hey-its-a-post 我這樣做的主要原因是對於搜索引擎優化,所以會/博客/ 20/itsapost是可以接受的相同/博客/ itsapost – BITmixit

0

如果你的PHP腳本檢索該帖子基於其ID,那麼您必須將其包含在URL中。你可以試試這個:

http://www.mysite.com/blog/30/post-title-here 

,然後修改你的.htaccess文件中讀取ID參數,像這樣:

RewriteEngine on 
RewriteRule ^blog/([0-9]+)/([a-zA-Z-_])$ blog.php?id=$1 [L] 

或者你可以在你的崗位表中添加新的領域,被稱爲permalink或任何與用它來檢索帖子,而不是ID。像這樣:

SELECT * FROM posts WHERE permalink LIKE 'post-title-here' 
+0

這是值得做的SEO或將SEO不關心數字被用作目錄?我知道SEO討厭變數,但是目錄呢?此外,謝謝,這是非常有用的:) – BITmixit

+0

@BITmixit我一直認爲規範的URL「www.site.com/like-this-one」更具人類可讀性,因爲人們可以真正瞭解鏈接後面的內容通過簡單地閱讀它的slu。。我不能說從SEO的角度來看什麼更好,但是在網站和頁面中還有很多其他(更重要的)事情要做,以便更好地優化它們並獲得更高的排名。在這裏檢查[什麼使得「友好的URL」?](http://stackoverflow.com/questions/522466/what-makes-a-friendly-url) –