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 错误。如果我更换-用+,它显示的目录列表。
<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)