0

我一直在关注一些 YouTube 视频来尝试让它工作,但它似乎不想这样做。这就是我的 .htaccess 文件的外观:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

RewriteRule RewriteRule ^(.*)$ index.php/$l

我对 .htaccess 完全陌生,我不完全确定它是如何工作的,但我的常识告诉我只需创建一个文件,将其命名为 .htaccess 并将其放在与我的 index.php 相同的文件夹中,对吗?

所以当我去,说 index.php/foo/bar 甚至只是 /foo/bar/ 我得到一个 404 错误。

可能的问题是什么?它是安装了 PHP 5.3.10 的 Windows 2008 服务器。

4

1 回答 1

1

作为开始你的最后一行应该是

RewriteRule ^(.*)$ index.php/$l

它应该像您期望的那样工作......将所有请求传递给现有文件/文件夹之外的所有请求index.php

.htaccess可以在请求命中的任何文件夹中......URL唯一的区别是它的基础是URL相对于所在文件夹的.htaccess

例子:

/folder1
 .htaccess
 index.php
 /folder2
 .htaccess
 index.php

如果您访问/test.phpnone 如果您的.htaccess文件将被处理(它与 request URI.

如果您访问/folder1/test.php相应.htaccess的 infolder1将被使用并且$1RewriteRule将显示test.php的in/folder1/将被从URI.

如果您访问/folder1/folder2/test.php它是相似的... apache 将使用.htaccessfrom folder2... fromfolder1将被忽略(有点不直观)

于 2012-12-04T13:46:19.960 回答