2
當我第一次開始了我的網站,網址是按以下格式:CodeIgniter的查詢字符串重寫在.htaccess
project.php?projectID=1&pageID=2
幾年前我修改的.htaccess重寫這些使用段,像這樣:
project/1/2
我更新了所有內部鏈接以使用分段格式,但這很好,因爲它仍支持舊格式的任何外部傳入鏈接。
現在我切換到CodeIgniter,使用分段格式渲染我的頁面很容易,但我正在努力解決如何支持舊的查詢字符串URL。
我試圖在CodeIgniter中原生支持查詢字符串似乎破壞了分段的URL,所以它看起來像我不能同時支持。在CodeIgniter中設置一個路徑將查詢字符串重定向到控制器似乎不起作用。例如:
$route['project.php?projectID=(:any)&pageID=(:any)'] = 'home/projectview/$1/$2';
我的第二個想法是直接修改的.htaccess到查詢字符串重定向到控制器,就像這樣:
(請注意,我還使用的.htaccess重寫,消除外觀index.php中的CI URL)
RewriteRule ^project.php?projectID=(\d*)&pageID=(\d*) project/$1/$2/ [L]
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php/$1 [L]
但是,這個重寫規則似乎也不起作用。它重定向到我的CodeIgniter 404而不被重寫,甚至通過刪除默認的index.php規則它不重定向,所以我假設我的正則表達式/ .htaccess格式中有一些東西是不正確的。
這很好,謝謝,但我可以要求一個修訂?我也適應'&pageID ='缺席(默認爲第1頁)。如何使這部分正則表達式可選? – monkeymatrix
@monkeymatrix查看編輯 –
令人驚歎的,謝謝你的接受! :) – monkeymatrix