0

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

我的 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]

谁能给我一个提示,为什么我的定义不符合我的要求?

4

1 回答 1

1

对于第一级,这工作得很好。所以如果 'foo/' 不适合你,我认为你的 .htaccess 文件没有被正确解析。

如果它的“较低级别”不起作用(“foo/bar/”等)这是您的问题,请改用此重写规则:

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

它将匹配任何级别的嵌套并为您提供整个路径。(对于最后一个子目录,使用 $2 或 $3 而不是 $1。)

于 2011-12-27T10:28:12.930 回答