符号链接和索引文件无法正常工作的.htaccessconfiguration

和许多Web开发人员一样,当请求不是公用服务目录中存在的文件时,我喜欢使用.htaccess通过单个入口点将所有stream量引导到域。

所以像这样的东西:

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

这意味着如果请求不是为了一个CSS文件或图像,我的index.php获取请求,我可以select做什么(提供一些内容或404可能)

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

我的文档根目录如下所示:

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

然而,Apache没有看到作为目录的目录的符号链接。 它将请求传递到我的index.php根目录中。 我想提供链接,就好像它是一个文件夹,因为它是一个链接到它自己的index.php文件夹。 我可以通过在浏览器的地址栏中input来访问http://example.com/asymboliclink/index.php ,但我希望能够通过http://example.com/asymboliclink访问它

我需要添加到我的.htaccess文件来做到这一点?

使用-l开关测试符号链接

 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作为一个路径名,并测试它是否存在,并且是一个符号链接。

-l标志引用符号链接

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