Apache .htaccess <此处不允许使用目录

Hri*_*dov 8 regex apache .htaccess mod-rewrite apache-config

我运行 XAMPP 并试图了解 .htaccess 的工作原理。我有一个看起来像这样的文件结构:

/parent
    /foo
    /bar
    .htaccess
Run Code Online (Sandbox Code Playgroud)

我只是想将所有foo请求更改为bar在它们之后附加一个 GET 参数。例如:

foo/
foo/hello.php
Run Code Online (Sandbox Code Playgroud)

变成:

bar/?test=yes
bar/hello.php?test=yes
Run Code Online (Sandbox Code Playgroud)

当我尝试将<Directory>指令放入我的 .htaccess 文件时:

<Directory "/foo">
    Options +Indexes
</Directory>
Run Code Online (Sandbox Code Playgroud)

我收到以下错误日志:

[2017 年 9 月 19 日星期二 17:23:58.356362] [core:alert] [pid 6336:tid 1900] [client ::1:60018] C:/xampp/htdocs/parent/.htaccess:<此处不允许使用目录

我检查了我的 httpd.conf 文件,一切正常。我敢肯定,因为如果我将 .htaccess 文件的内容更改为:

Options -Indexes
Run Code Online (Sandbox Code Playgroud)

它正确显示 403 错误。如果我更换-+,它显示的目录列表。

我究竟做错了什么?

anu*_*ava 6

<Directory> .htaccess 中不允许使用指令,为了满足您的要求,您甚至不需要在 .htaccess 中使用该指令。

您可以在站点根(父)中使用此规则.htaccess

RewriteEngine On

RewriteCond %{QUERY_STRING} !(?:^|&)test=yes(?:&|$) [NC]
RewriteRule ^foo/(.*)$ bar/$1?test=yes [NC,QSA,L]
Run Code Online (Sandbox Code Playgroud)