2012-06-06 92 views
0

除去整數值我有一個htaccess的文件如下所示:修改htaccess的提取和從URL

Options +FollowSymLinks -MultiViews 

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteRule^- [L] 

RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?$1=$1&pid=$2 [L,QSA] 
RewriteRule ^([^/]+)/?$ /index.php?pid=$1 [L,QSA] 

其引導像FE鏈接「給藥/模塊」到「的index.php /施用=給藥& pid = modules「或」administration「改爲」index.php?pid = administration「。

爲性能的原因,我想修改htaccess的,這樣就可以直接像一個鏈接

「administration_55」

的index.php?PID = 55"

所以'55'(記錄的id)必須從pid參數「pid = administration_55」中以某種方式提取出來。因爲我還想要一個可見的url,比如「www.example.com/administration 「沒有它的」_55「部分,我想知道,這將如何b e以一種好的方式完成,直接在htaccess文件中或在響應php文件中使用標題重定向?

Thanx提前,傑登

回答

0
# e.g. /administration/modules 
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?$1=$1&pid=$2 [L,QSA] 
# e.g. /administration_55 
RewriteRule ^([^/]+)_([[0-9]+)/?$ /index.php?$1=$1&pid=$2 [L,QSA] 
# e.g. /test 
RewriteRule ^([^/]+)/?$ /index.php?pid=$1 [L,QSA] 

作爲除去55,最好的辦法是用PHP。我在我的數據庫表中有一個名爲'url'的獨立字段,所以我可以使用正確的url(-part)查找記錄。我還爲這個領域增加了一個索引來表現。

0

因爲你可以並不意味着你應該......你不能在網站本身的基礎上,REFERRER在index.php處理這種額外這將是更安全並且不需要啓用.htaccess支持...?

0

可以使用htaccess的重定向,但你必須有網址與_55部分與它