除非指向 index.php,否则无法让应用程序使用 htaccess。

除非指向 index.php,否则无法让应用程序使用 htaccess。

我无法让我的一个应用程序使用其路径中的 htaccess 文件,除非我直接在浏览器中指向 index.php

我电脑上已经安装了ubuntu:

Distributor ID: Ubuntu
Description:    Ubuntu 15.10
Release:    15.10
Codename:   wily

我已经在我的电脑上安装了apache:

Server version: Apache/2.4.12 (Ubuntu)
Server built:   Jul 24 2015 15:59:11

我尝试将以下代码添加到我的/etc/apache2/apache2.conf

<Directory /var/www/html/pss/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

我也尝试过这样的方法:

<Directory /var/www/html/pss/html>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

如您所见,此代码指向位置/var/www/html/pss。在我的文件夹中pss folder有一个html文件夹。在这个 html 文件夹中,我有一个.htaccessindex.php文件。

如果我将浏览器指向http://localhost/pss/html但是如果我去http://localhost/pss/html/index.php似乎有效

我在我的文件中添加了htaccess一条指令:DirectoryIndex index.php。这不起作用。这是我的.htaccess文件:

SetEnv APPLICATION_ENV development
DirectoryIndex index.php
php_value session.auto_start 0
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

它位于/var/www/html/pss/html/.htaccess

据我所知,当我转到 url/index.php 时,它会使用 htaccess,但当我直接转到 url 本身时,它不会使用 htaccess

如果您需要任何进一步的信息,请告诉我。

答案1

需要注意的是,你在 apache2.conf 文件中输入的“AllowOverride”指令控制用户是否能够通过.htaccess 文件修改网络服务器的行为。

通过将其设置为 None,您实际上是在阻止 .htaccess 产生任何效果!您很可能希望将其设置为 All,或者例如 Indexes,因为您正在尝试更改索引参数。

最后,如果您有权访问 Web 服务器,也可以直接在 Apache2 配置文件中设置这些参数。.htaccess 文件的主要用途是在用户无权访问 Web 服务器配置的共享 Web 主机上使用。

相关内容