2013-07-02 128 views
0

我正在將網站重構爲MVC框架,並且正在將所有內容從根目錄移動到有組織的文件結構。所以現在不用去domian.org/homeloans.php,用戶需要做domain.org/loans/homeloans。這裏是我用來指導網站流量的.htaccess文件。PHP MVC&.htaccess 301重定向

RewriteEngine on 
DirectorySlash on 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*)$ index.php?rt=$1 [L,QSA] 

不應該這樣簡單到加:

Redirect 301 /homeloans.php https://domain.org/loans/homeloans 

打開重寫引擎後?但是,當我這樣做時,我在地址欄中找到了一個404:https://domain.org/loans/homeloans?rt=homeloans.php

請指教。

+0

那麼這是有道理的......你正在設置'?rt'爲捕獲組的值,這將是'homeloans.php'。你的重寫應該是'index.php',然後你可以在PHP端編譯要訪問的資源。 – prodigitalson

+0

在上面的代碼中,您錯過了重定向爲「重定向」。這個錯字是出現在你的.htaccess文件中,還是隻出現在這個頁面上? – Bobulous

+0

@Arkanon修正了它,問題就在這個頁面上。 – Neve12ende12

回答

0

這個問題似乎不是重寫,而是你的新MVC網站處理這個URL的能力。它看起來像它可以處理:

/loans/homeloans 

但不

/loans/homeloans?rt=homeloans.php 

嘗試訪問都直接;如果後者不起作用,但前者不行,那麼你知道問題出在你的MVC應用程序的路由配置上。

+0

?rt告訴路由器要調用什麼控制器和動作,所以應該使用homeloans方法調用Loan Conrtoller。/loans/homeloans?rt = loans/homeloans雖然 – Neve12ende12

+0

在這種情況下,這是因爲.php最後我懷疑 - 請求正在被PHP處理,而不是您的MVC應用程序。 Web服務器配置... –