2013-05-05 33 views
1

我想更改重寫URL刪除ID號,所以Datalife引擎重寫URL沒有ID

site/2-post.html - >通常
site/post.html - >那我想

這可能嗎?我已經檢查了模塊php文件,並在必要時更改了代碼,但在.htaccess無法設置。我.htaccess在這裏我想有necessarry一部分,當我改變了它的一些問題happend

RewriteRule ^([0-9]+)-([^/]*)\.html$ /index.php?newsid=$1&seourl=$2 [L] 

回答

0

你想實現什麼,我不認爲是可能的,因爲應用程序需要知道的ID,以便做任何有用的。如果瀏覽器請求的唯一東西是site/post.html,則服務器不能奇蹟般地重新創建先前在URL中的ID。

這是可能的唯一方法是如果應用程序可以純粹基於「seourl」參數查找文章,在這種情況下,您可以簡單地從URL中刪除「newsid」部分,留下如下規則:

RewriteRule ^([^/]*)\.html$ /index.php?seourl=$1 [L] 

最簡單的方法來測試是否這將工作就是鍵入一個URL到您的形式瀏覽器規則將映射到,所以如http://yoursite.example.com/index.php?seourl=some-post-that-exists

+0

IMSoP,謝謝回覆,但seourl參數只改變SEO類型不相關的網址建設,也我想創建url沒有index.php或其他參數(如id) 我認爲沒有辦法創建此網址構建 – 2013-05-06 00:31:55

+0

您無法創建不包含檢索正確內容所需信息的URL,因爲URL是服務器獲得的唯一輸入。所以你可以改變參數放在一起的方式,並刪除總是相同的東西,比如'index.php',但某處需要足夠的信息才能真正選擇正確的帖子。 – IMSoP 2013-05-06 00:38:06

+0

我明白你想說什麼。那麼可以通過使用301? – 2013-05-06 00:45:21

0

這個黑客更換ID結束的URL: 找到這個: 引擎/模塊/ show.short.php 引擎/模塊/ show.full.php

發現。 $ row ['id']。 「 - 」。 $ row ['alt_name']。 「.HTML」;

替換爲:。 $ row ['alt_name']。 「 - 」。 $ row ['id']。 「.HTML」;

把這個代碼在.htaccess

RewriteRule ^(.*)-([0-9]+).html(/?)+$ index.php?newsid=$1&seourl=$2 [L] 
RewriteRule ^([^.]+)/(.*)-([0-9]+).html(/?)+ 
$ index.php?newsid=$2&seourl=$3&seocat=$1 [L] 
0

早在DLE 8.x中此選項可以更改,但在9.x和10.x中的運氣了,我和IMSOP完全同意因DLE使用ID庫生成seourl。