2012-10-04 54 views
0

這是第一次在這裏提出一個問題,所以不要對我很難。謝謝。Joomla htaccess重寫url - 參數必須用數字索引 - 爲什麼?

我目前設置了一個joomla網站。我在template/index.php裏創建一個頁面,一個新模板和一個模塊,我稱之爲模塊。

的作品原始URL是這樣的:? 的index.php/DANH - 國家文物局比賽gt_name = game_mang_xa_hoi

DANH,國家文物局遊戲:是的頁面。遊戲mang-xa-hoi:是模塊的輸入參數。

萬物的作品找到,但我想重寫URL到這一點:

DANH,國家文物局遊戲/遊戲芒XA-海

所以我創建了內容的.htaccess:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^danh-sach-game/(.*)$ index.php/danh-sach-game?gt_name=$1 [L] 
</IfModule> 

現在,這是時間「MAGIC」 如果我輸入的網址: DANH - 國家文物局遊戲/遊戲芒XA-海 隨後的Joomla推送消息「有occurred.The請求的頁面錯誤不能被發現「。但是,如果我通過這樣的數字爲參數編制索引: danh-sach-game/1-game-mang-xa-hoi(注意:數字1)。 然後它發現。任何一個數字的paremeter索引都可以找到。

我將url重寫爲測試文件(將test.php替換爲index.php)比頁面test.php接收參數爲usuas,帶或不帶數字index參數。

回答

0

這是因爲Joomla和大多數Joomla擴展使用內容的ID列作爲標識符來查找數據庫。一些SEF工具(例如AceSef,sh404Sef)提供了使用別名(數字和連字符後面的文本)進行查找的功能,但是額外花費數據庫查詢(它們將在內部查詢正確的url)。

該URL的最後部分中的數字將被處理並作爲您正在查看的特定頁面/內容的ID傳遞。這是在特定組件的router.php文件中完成的。因此,請檢查您正在使用的組件的router.php文件,以檢查url是如何被解析的。