gpt4 book ai didi

php - 带有符号链接(symbolic link)和索引文件的 .htaccess 配置未按预期工作

转载 作者:IT王子 更新时间:2023-10-29 00:01:00 26 4
gpt4 key购买 nike

与许多 Web 开发人员一样,当请求不是针对公共(public)服务目录中存在的文件时,我喜欢使用 .htaccess 通过单个入口点将所有流量定向到域。

所以像这样:

RewriteEngine On
# enable symbolic links
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) index.php [L]

这意味着如果请求不是针对 css 文件或图像,我的 index.php 会收到请求并且我可以选择要做什么(提供一些内容或可能是 404)

效果很好,但我偶然发现了一个似乎无法帮助我解决的问题。

我的文档根目录是这样的:

asymboliclink -> /somewhere/else
css
.htaccess
img
includes
index.php

然而,Apache 不会将指向目录的符号链接(symbolic link)视为目录。它将请求传递到根目录中的 index.php。我想提供链接,就好像它是一个文件夹一样,因为它是一个指向具有自己的 index.php 的文件夹的链接。我可以访问 http://example.com/asymboliclink/index.php通过在浏览器的地址栏中键入它,但我希望能够通过 http://example.com/asymboliclink 访问它

我需要在我的 .htaccess 文件中添加什么才能实现这一点?

最佳答案

使用-l 开关测试符号链接(symbolic link)

RewriteEngine On
# enable symbolic links
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+) index.php [L]

文档

http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html - ctrl+f 用于“将 TestString 视为路径名并测试它是否存在,并且是一个符号链接(symbolic link)。”

关于php - 带有符号链接(symbolic link)和索引文件的 .htaccess 配置未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5412955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com