如何使用 .htaccess 路由 Php 文件

How to Route Php Files Using .htaccess

我有三个文件夹——Model、Views 和 Controller——我已将 index.php 文件存储在 Views 文件夹中。我无法传送文件。我在 .htaccess 文件中尝试了以下代码

RewiteEngine On
RewiteCond %{REQUEST_FILENAME} !-f
ReWriteRule ^(.*)$ index.php

假设您的项目结构如下所示:

Model
Controller
Views -> index.php

您可以使用根文件夹中的这个 .htaccess 文件:

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^$ view/ [L]
  RewriteRule (.*) Views/ [L]
</IfModule>

这会将所有流量发送到 Views 文件夹。

Views 文件夹中的另一个 .htaccess 文件:

<IfModule mod_rewrite.c>
  Options -Multiviews
  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^(.*)$ index.php?/ [L,QSA]
</IfModule>

这会发送所有流量抛出 index.php 文件,其中包含漂亮的 URL.

提示:

但我建议将您的结构更改为如下所示,这似乎更好:

public -> index.php #will include bootstrap.php
          assets
          .htacess

app --->> Model
          Controller
          View
          Helper
          bootstrap.php #contains autoload and includes
          ...
.htaccess

因此所有流量都将通过抛出 public/index.php 并且应用程序文件夹和服务与 public 和资产分开。