【问题标题】:PHP MVC & .htaccess 301 RedirectPHP MVC & .htaccess 301 重定向
【发布时间】:2013-06-30 01:01:58
【问题描述】:

我正在将网站重组为 MVC 框架,并且正在将所有内容从根目录的根目录移动到有组织的文件结构中。因此,现在用户无需访问 domian.org/homeloans.php,而是需要访问 domain.org/loans/homeloans。这是我用来引导网站流量的 .htaccess 文件。

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

请指教。

【问题讨论】:

  • 这很有道理...您将?rt 设置为捕获组的值,即homeloans.php。您的重写应该是index.php,然后您在 PHP 端确定要访问的资源。
  • 在上面的代码中,您将 Redirect 拼写为“Recirect”。这个错字出现在您的 .htaccess 文件中,还是仅出现在此页面上?
  • @Arkanon 已修复,问题出在此页面上。

标签: php .htaccess redirect url-rewriting http-status-code-301


【解决方案1】:

问题似乎不在于重写,而在于您的新 MVC 站点处理此 URL 的能力。看起来可以处理:

/loans/homeloans

但不是

/loans/homeloans?rt=homeloans.php

尝试直接访问两者;如果后者不起作用但前者不起作用,那么您知道问题出在 MVC 应用程序的路由配置上。

【讨论】:

  • ?rt 告诉路由器调用什么控制器和动作,所以它应该调用 Loan Conrtoller 和 homeloans 方法。 /loans/homeloans?rt=loans/homeloans 虽然有效
  • 在这种情况下,这是因为我怀疑最后的 .php - 请求正在由 PHP 而不是您的 MVC 应用程序处理。网络服务器配置...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-01
  • 2012-11-25
  • 2011-05-01
  • 2011-01-03
  • 2012-03-10
  • 2021-07-22
  • 1970-01-01
相关资源
最近更新 更多