2011-12-27 42 views
0

我想将内容显示为(不存在)子文件夹。所有这些子文件夹字符串都应发送到file.php并作为变量附加:“n”。在modrewrite反向引用中找不到错误

我的PHP脚本已经正常工作了。 (如果我在地址栏中附加了变量,file.php会显示它应该显示的所有内容。)但是我好像在我的.htaccess定义中至少有一个错误,我现在几天都找不到。 (所有页面仍可访问,但由于某种原因,如果我将任何字符串(只允许使用字符)作为子文件夹,我无法访问file.php(所有真实文件都应保持可访问性,因为它们是真实文档或子文件夹,它应该在我的.htaccess文件被排除在重写规则通过的条件。)

Options +FollowSymLinks 
Options +Indexes 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([a-z0-9_-]+)/?$ file.php?n=$1 [QSA,NC,L] 

谁能给我一个提示,为什么我的定义并没有做什么,我希望他们做什么?

回答

1

对于第一级,这是工作就好了。所以,如果“富/”是不是为你工作,我觉得你的.htaccess文件不被正确解析。

如果我TS“下级”不工作(“富/酒吧/”和这样的),那是你的问题,用这个来代替重写规则:

RewriteRule ^((([a-z0-9_-]+)/?)*)$ file.php?n=$1 [QSA,NC,L] 

它将匹配嵌套的任何级别,给你的整个路径。 (仅用于最后一个子目录,请使用$ 2或$ 3而不是$ 1)。

+0

非常感谢您为我们提供了令人难以置信的快速回复。我不需要使用更深的层次。 – Onsemeliot 2011-12-27 10:44:12

+0

我没有猜到,该文件没有正确解析,因为我可以通过在我的.htaccess文件中添加错误,轻松地使所有文件无法访问。您认为问题仍然存在,即.htaccess文件未正确解析?我如何检查? – Onsemeliot 2011-12-27 10:51:56