0

テストしているフレームワークを実行するために.htaccessファイルを作成していましたが、ローカルホストにアクセスしようとすると、フレームワークのファイルが配置されているフォルダーが表示されませんでした。アクセスしようとすると、これを要求すると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ファイルの最も基本的なリダイレクトは機能しませんが、サーバーでは機能します。たぶん私はモジュールを無効にしていますか?

4

2 に答える 2

1

.htaccessに+FollowSymlinksはありますか?これは通常、オプションをすでにアクティブにしているLinuxシステムまたはWindowsで500エラーを実行します。

于 2012-11-23T07:55:27.293 に答える
0

phpinfo()を実行して、mod-rewriteがアクティブになっていることを確認してください。Webルートフォルダに次のような単純なphpファイルを作成します。

<?php
  phpinfo();
?>
于 2012-11-23T08:00:03.043 に答える