如何使用 .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 和资产分开。
我有三个文件夹——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 和资产分开。