Apache Mod Rewrite - 当有一个文件夹时伪造一个文件夹

时间:2011-10-11 19:43:33

标签: apache .htaccess mod-rewrite

我有,比方说www.website.org/folder/里面有以下.htaccess

RewriteEngine On
RewriteRule ^folder/[0-9]+ http://www.website.org/folder/index.php?n=$1 [NC]

folder内我有很多文件夹,例如12344567等。我正在寻找的行为是从www.website.org/folder/1234重写为www.website.org/folder/index.php?n=1234 。但是,由于某种原因,重写没有发生,我得到一个Forbidden错误(假设你无法访问目录本身)。

我该如何解决这个问题? 非常感谢你

- 注意:我不得不放弃Options +FollowSymlinks因为我从提供商的网络服务器收到Option FollowSymLinks not allowed here错误。

- 编辑1

根据Jason的帖子,我修改了.htaccess如下(我仍然保留在folder中):

RewriteEngine On
RewriteBase /folder/
RewriteRule ^folder/([0-9]+)/?$ /folder/index.php?n=$1 [NC,L]

但它仍然把我带到文件夹,为什么会这样?谢谢!

1 个答案:

答案 0 :(得分:1)

编写规则的方式, .htaccess 应该在您的webroot中,而不是folder目录。

或者,您可以修改RewriteBase。但是,我会做以上操作并使用:

RewriteEngine On
RewriteBase /
RewriteRule ^folder/([0-9]+)/?$ /folder/index.php?n=$1 [NC,L]