2013-07-02 224 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服务器配置... –