【问题标题】:URL routing in PHP (MVC)PHP (MVC) 中的 URL 路由
【发布时间】:2016-10-19 23:38:01
【问题描述】:

我正在构建一个自定义 MVC 项目,我有一个基本文件夹 /mvc,其中包含 .htaccessroutes.php 文件,并且位于 C:\xampp\htdocs 根文件夹中。这是我的文件:

C:\xampp\htdocs\mvc\.htaccess

<IfModule mod_rewrite.c>

RewriteEngine on

RewriteCond %{REQUEST_URI} !.*\.png$ [NC]
RewriteCond %{REQUEST_URI} !.*\.jpg$ [NC]
RewriteCond %{REQUEST_URI} !.*\.css$ [NC]
RewriteCond %{REQUEST_URI} !.*\.gif$ [NC]
RewriteCond %{REQUEST_URI} !.*\.js$ [NC]
RewriteRule ^((?!routes\.php).+)$ /mvc/routes.php [L]

</IfModule>

C:\xampp\htdocs\mvc\routes.php

<?php
# Routing logic goes here...

问题

我想将routes.php 移动到mvc/app 文件夹中,因此我在.htaccess 中更改了这一行

RewriteRule ^((?!routes\.php).+)$ /mvc/routes.php [L]

到这一行:

RewriteRule ^((?!routes\.php).+)$ /mvc/app/routes.php [L]

但这似乎不起作用!我收到 500 错误。我在这是要干嘛?我想将所有请求(包括任何 .php 或其他文件请求,不包括图像)重定向到 mvc/app/routes.php,它将处理 HTTP 请求并将它们定向到适当的控制器。

【问题讨论】:

    标签: php .htaccess


    【解决方案1】:

    尝试:

    <IfModule mod_rewrite.c>
    RewriteEngine on
    
    RewriteCond %{REQUEST_URI} !\.(png|jpg|css|gif|js)$ [NC]
    RewriteRule ^((?!app/routes\.php).+)$ /mvc/app/routes.php [L]
    </IfModule>
    

    【讨论】:

    • 更新:我所要做的就是将^((?!mvc/app/routes\.php).+)$ 更改为^((?!app/routes\.php).+)$。这里不需要mvc/,因为.htaccess 已经在mvc/ 文件夹中!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2011-02-05
    • 2011-08-30
    • 2012-09-09
    • 2011-08-31
    • 2010-11-22
    • 2010-11-13
    相关资源
    最近更新 更多