【发布时间】:2012-11-19 17:41:11
【问题描述】:
抱歉,如果有人问过这个问题,或者我不确定标题是否正确,但我刚刚开始使用 htaccess 文件,我有点迷茫。基本上我想要做的是在 URL 前面加上“index.php”。例如,如果用户输入:
http://www.example.com/show/12
我希望 htaccess 文件创建 URL:
http://www.example.com/index.php/show/12
如果不行,有没有办法总是去 index.php 前端控制器,在 URL 中添加“show/number”,这样前端控制器就可以通过参数到另一个控制器?
我的 htaccess 代码如下:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ index.php
我需要它假设所有的 URL 请求都去 index.php 前端控制器,然后将 URL 的其余部分传递给前端控制器。
我不断收到的错误是:
The requested URL /testing-mod-rewrite/show/12 was not found on this server.
如果有帮助,这是我的前端控制器的 PHP 代码:
include_once('controllers/baseController.php');
$uri = $_SERVER['REQUEST_URI'];
$urifinal = str_replace($uri , '/', $uri);
$request = explode('/', $_SERVER['REQUEST_URI']);
$controller = new BaseController();
$controller->index_action($request);
【问题讨论】:
-
您为什么希望用户在网址中看到
index.php/?大多数开发人员都希望隐藏这一点。 -
就是这样,我不想在 URL 中包含它,我想隐藏它并允许 htaccess 文件始终转到 index.php 前端控制器和 URL 的其余部分传递给 index.php。
-
当前的 htaccess 到底有什么问题?我觉得很好
-
它一直说“在此服务器上找不到请求的 URL /testing-mod-rewrite/show/12。”
-
尝试添加
RewriteBase /testing-mod-rewrite。还要确保 mod_rewrite 已启用。
标签: php .htaccess url-rewriting