2017-04-20 96 views
0

我正在嘗試將舊的站點文件重定向到新的CodeIgniter站點,其編號爲.htaccesshtaccess將舊的php文件重寫爲CodeIgniter文件

所以,我的舊文件

www.mysite.com/news/new?id=123 

必須重定向到

www.mysite.com/news/new/123 

現在,我.htaccess內部有通常的代碼刪除index.php並能正常工作。

#RewriteCond %{REQUEST_FILENAME} !-f 
#RewriteCond %{REQUEST_FILENAME} !-d 
#RewriteRule ^(.*)$ index.php?/$1 

但是,當我嘗試舊文件重定向沒有任何作品。 我認爲這個問題的有關笨,becouse如果我做一個簡單的重定向到外部文件,像phpinfo.php它工作正常,但如果試圖重定向到index.php(的笨),它不會加載index.php但嘗試加載等。如果我刪除.htaccess代碼index.php(請參見上圖)。

所以,

RewriteRule news/new.php phpinfo.php [L] # it works 

RewriteRule news/new.php index.php [L] # it doesn't work 

回答

0

笨使用REQUEST_URI Apache的變量,不能重寫規則和不重定向更改。因此,您可以使用新聞控制器中的_remap函數來調用您的自定義方法。

其他可以用htaccess做的方法是enabling query string

0

嘗試 RewriteRule news/new\?id=(.*)$ index.php/news/new/$1 [L]

+0

雖然這個代碼片斷可以解決的問題,[包括說明](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高您的帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! – Carpetsmoker