使用.htaccess的清洁/短网址无法正常工作

时间:2012-12-04 13:28:27

标签: html .htaccess url url-rewriting

我一直在关注一些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 Server。

1 个答案:

答案 0 :(得分:1)

开始时你的最后一行应该是

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

它应该按预期工作...将现有文件/文件夹的所有请求传递到index.php

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

示例:

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

如果您的/test.php文件将被处理(如果与请求.htaccess无关),则访问URI无。

如果您访问/folder1/test.php,则会使用.htaccess中的相应folder1,并且$1中的RewriteRule会显示test.php/folder1/将被URI删除。

如果你访问/folder1/folder2/test.php它是类似的... apache将使用.htaccess中的folder2 ...来自folder1的那个将被忽略(有点反直觉)< / p>