目录混乱友好的URL(htaccess)由PHP处理

时间:2013-07-31 11:44:25

标签: php .htaccess directory

我是友好网址的新手,所以也许缺少基本的东西。

我的htaccess包含:

 RewriteRule ^([a-zA-Z0-9-/+]+)/?$ /index.php?surf=$1

在index.php里面我处理这样的请求:

switch ($_GET['surf']) {
    case "whatever":    
...

所以链接就像domain.com/home,我为了目的使用index.php包含了一个home.php

一切都适用于标准情况,但如果有人输入目录的名称作为参数,如:     domain.com/css

页面搞砸了。地址栏显示:http://domain.com/css/?surf=css,内容类似于index.php(home)中的默认大小写,但没有样式等。

我猜它是在htaccess和索引之后尝试访问http://domain.com/css/index.php?surf=css

我该如何解决这个问题?

*请注意,我希望有一些其他目录中有一些index.php。

1 个答案:

答案 0 :(得分:1)

添加以下行:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9-/+]+)/?$ /index.php?surf=$1

这可以防止重定向真实文件和文件夹。