我想将内容显示为(不存在的)子文件夹。所有这些子文件夹字符串应该发送到file.php并附加为变量:“n”。
我的PHP脚本已经正常工作了。 (如果我在地址栏中附加变量file.php显示它应该显示的所有内容。)但我的.htaccess定义中至少有一个错误,我现在几天都找不到。 (所有页面仍可访问,但由于某些原因,如果我输入任何字符串(仅允许使用chars)作为子文件夹,我无法访问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]
任何人都可以给我一个暗示,为什么我的定义没有按照我的要求去做吗?
答案 0 :(得分:1)
对于第一级,这工作得很好。因此,如果'foo /'不适合你,我认为你的.htaccess文件没有被正确解析。
如果它的'较低级别'无法正常工作('foo / bar /'等),那么请使用此重写代码:
RewriteRule ^((([a-z0-9_-]+)/?)*)$ file.php?n=$1 [QSA,NC,L]
它将匹配任何级别的嵌套并为您提供整个路径。 (对于最后一个子目录,使用$ 2或$ 3而不是$ 1.)