Dot-Htaccess

除非指向 index.php,否則無法讓應用程序使用 htaccess

  • February 15, 2016

我很難讓我的一個應用程序在其路徑中使用 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>

如您所見,此程式碼指向 location /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 時不使用

如果您需要任何進一步的資訊,請告訴我。

重要的是要注意,您在 apache2.conf 文件中放置的“AllowOverride”指令控制使用者是否能夠通過 .htaccess 文件修改網路伺服器的行為。

通過將其設置為無,您實際上是在阻止您的 .htaccess 產生任何影響!您很可能希望將其設置為 All,或者例如 Indexes,因為您正在嘗試更改索引參數。

最後,如果您有權訪問 Web 伺服器,還可以直接在 Apache2 配置文件中設置這些參數。.htaccess 文件的主要用途是在使用者無權訪問 Web 伺服器配置的共享 Web 主機上使用。

引用自:https://serverfault.com/questions/756074