2009-11-21 107 views
2

实例网址:忽略干净的URL的符号链接在.htaccess

example.com/user

/用户既是一种符号链接的目录和一个有效的URL内容在我的网站。我用户部落路线请求的内容和所有请求到网站通过index.php。

我现在有一个.htaccess文件看起来像:

Options +FollowSymlinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com$ [NC] 
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] 

#allow cool urls 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) index.php [L] 
#allow to have Url without index.php 

但会/用户列出目录的内容,而不是网页。有没有可能忽略符号链接?

附加也就是说,如果你要求:

example.com/user/some-css-file.css

这是一个不应忽视的一个有效的请求。那么是否可以通过符号链接来请求文件,但基本符号链接本身可以被忽略并转到index.php?

谢谢:)

回答

1

当请求/user/时,由于!-d实际上是一个现有目录,所以对!-d的测试将失败。你可能想使用它,而这一条件,只允许现有的文件,但没有目录的直接访问:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*) index.php [L] 

另外,你可以用!^index\.php$更换模式^(.*)使得对于的index.php没有按”请求牛逼需要一个文件系统查询:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !^index\.php$ index.php [L] 
1

忘记忽略符号链接只是创建另一个RewriteRule。 “允许酷网址”规则之前将其放置:

RewriteCond %{REQUEST_URI} ^/user/$ 
RewriteRule (.*) /index.php [L] 

所以http://www.example.com/user/http://www.example.com/user应该去的内容。 [L]应该防止进一步的规则被处理。

+0

感谢 - 我也许应该说是有相当多的符号链接(也〜10),所以宁愿有这种情况的一个包罗万象随着越来越多的符号链接会在未来产生太大。 – ed209 2009-11-21 12:53:49