.htaccess,DirectoryIndex无法正常运行

时间:2014-06-17 02:00:49

标签: php apache .htaccess

我是htaccess的新手,我尝试使用DirectoryIndex来修改我的img文件夹的默认页面,这样当用户尝试输入我的img文件夹时,我可以重定向到我的主页。

在我的img文件夹的.htaccess文件中

// my site folder locates in htdocs/lserev
DirectoryIndex /lserev/index.php

当我尝试输入类似localhost/lserev/img的内容时,我没有重定向到我的index.php,相反,网址仍为localhost/lserev/img,但页面内容是index.php没有正确渲染(没有图像,没有css)。

2 个答案:

答案 0 :(得分:0)

在Root文件夹.htaccess文件中编辑并使用RedirectMatch选项。没有必要有一个单独的.htacces文件驻留在任何其他文件夹中进行重定向。

RedirectMatch 301 ^/imagefolder/$ http://mydomain/

请注意,对于任何无法使用此功能的人,您还需要在顶部的.htaccess文件中添加以下内容,以使此选项正常工作

RewriteEngine On

并在Apache配置文件中确保特定Web文件夹或根文件夹的(AllowOverride None)更改为(All),以使RewriteEngine能够接受.htaccess文件中的选项。

AllowOverride All 

最后你需要将(重写)模块加载到Apache服务器。对于Linux,请使用以下命令。对于其他平台,请参阅文档。

sudo a2enmod rewrite

=====

=====

或者,要从任何文件夹重定向,PHP索引页面可以与重定向到主页一样好。此索引页面可以放在您不希望浏览的任何文件夹中,或者想要重定向到主页或任何其他页面。

<?php 

header("Location: http://myhomepage.php");

?>

=====

=====

您还可以通过编辑Apache配置文件并删除索引来禁用文件夹浏览。这条线可能看起来像这样

Options Includes Indexes FollowSymLinks MultiViews

删除(索引)并重新启动apache服务器。

如果您现在尝试浏览文件夹,则会收到(禁止)消息。

答案 1 :(得分:0)

.htaccess档案&amp;将它放在服务器上的lserev/img/目录中:

Options -Indexes

RewriteCond %{REQUEST_URI} !(\.gif|\.jpg|\.png)$ [NC]
RewriteRule ^(.*)$ /index.php  [NC,L,R=301]

Options -Indexes禁用目录索引。

然后,RewriteCond会检查请求网址中是否包含.gif.jpg.png。如果没有那些?好吧,下一个RewriteRule开始将请求重定向到您的index.php页面。