.htaccess它将我的文件夹隐藏在localhost中

时间:2012-11-23 07:47:09

标签: php apache .htaccess redirect

我正在创建一个.htaccess文件来运行我正在测试的框架,但是当我尝试访问我的localhost时,框架文件所在的文件夹没有显示出来。 如果我尝试访问,请求localhost/my_hidden_folder/会触发500错误,内部服务器错误。

这种行为是我的apache | .htaccess配置错误的结果,我很确定,因为另一台服务器上的.htaccess工作正常。

这是我的.htaccess:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

这是我/etc/apache2/sites-available的默认文件:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride All
            Order allow,deny
            allow from all
    </Directory>
    <Directory /var/www/entrega2>
            AllowOverride All
    </Directory>
    <Directory /var/www/unlp>
            AllowOverride All
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
            AllowOverride None
            Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
            Order allow,deny
            Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

两个文件夹/var/www/unlp/var/www/entrega2都有相同的.htaccess文件,两者都是隐藏的。

.htacces文件中最基本的重定向在我的localhost中不起作用,但在服务器中有效。也许我禁用了模块?

2 个答案:

答案 0 :(得分:1)

.htaccess中是否有+ FollowSymlinks?这通常会在已激活该选项的Linux系统上或在Windows上发生500错误。

答案 1 :(得分:0)

尝试运行phpinfo()以确保激活mod重写。 在您的Web根文件夹中创建简单的php文件,其中包含:

<?php
  phpinfo();
?>