2012-07-10 28 views
1

我想重寫我的url從PHP擴展到html.and如果該文件不是 找到然後它應該重定向到一些客戶頁面(404.php)。使用這個我面臨的問題是這樣頁面未找到應該與重寫規則htacces

RewriteEngine on 
RewriteRule ^$ front/index.php?query=$1 [NC,L,QSA] 
RewriteRule (.*)\.(html) ?page=$1 [L,NC,QSA] 
ErrorDocument 404 /expertLocal/?page=404 

我寫的規則是這樣的。 http://somedomain.com/expertLocal/contact.html

,將工作文件怎麼我有contact.php頁。如果我會寫somedomain.com/expertLocal/contactxyz.php然後將其重定向到404.php頁面,但如果我會在地址欄寫http://somedomain.com/expertLocal/contactxyz.html然後它會給代替404.php頁面警告。

這是因爲我ahve用我自己的框架,並在此結構文件首先重定向到控制器索引文件傳輸,然後請求的文件存在。

include(FRONT_CONTROLLER_PATH . $page . '.php'); like this. 

你能幫我嗎?

在此先感謝..

+0

在這裏你有contact處理contact.html文件的聯繫人控制器..對嗎?發佈您的警告消息。是MVC錯誤? – VibhaJ 2012-07-11 05:17:11

回答

0

我不知道你的框架,但檢查下面的代碼,如果有幫助。

$filename = FRONT_CONTROLLER_PATH . $page . '.php'; 
if (file_exists($filename)) 
{ 
     include($filename); 
} 
else 
{ 
     // include 404 page here 
} 
+0

謝謝vibha。我已經申請了這個,但我的PM說只能用htaccess來做。 – Urvisha 2012-07-11 06:05:47

+0

你的項目上已經有404頁面了嗎?如果它正在工作,直接在瀏覽器中運行http://somedomain.com/expertLocal/404.html? – VibhaJ 2012-07-11 06:33:56

+0

RewriteEngine RewriteRule^$ front/index.php?query = $ 1 [NC,L,QSA] RewriteRule(。*)\。(html)?page = $ 1 [L,NC,QSA] ErrorDocument 404/expertLocal /?頁= 404 不管我的第一次就通過在頁面名前/ index.php頁面堂妹在項目中,我們有一個文件,所以我想利用htaccess的規則,我不能達到這樣它能夠更好地使用PHP代碼的文件存在控制器文件。 – Urvisha 2012-07-11 08:53:20