.htaccess重写文件夹也会影响其子文件夹

时间:2011-10-22 19:57:16

标签: apache .htaccess mod-rewrite

我有一个PHP文件位于一个文件夹(“www.mysite.com/folder/test.php”)中,它接受一个get参数(str)并让我们说print。为了使URL友好,我正在尝试重写它:

RewriteBase /
RewriteRule ^folder/(.*)$ folder/test\.php?str=$1&%{QUERY_STRING} 

重写规则工作正常,问题是当我需要访问该文件夹的子文件夹时。例如,如果test.php中的图像位于www.mysite.com/folder/images/img.jpg,根据上述规则,它需要images / img.jpg并将其传递给php文件。 / p>

如何防止这种情况?

2 个答案:

答案 0 :(得分:2)

看看:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

应解决您的问题 - 这只是确保所请求的URL既不是服务器上的实际文件也不是目录。

答案 1 :(得分:1)

当你告诉它“任何角色”时,它认为你真的是指任何角色

RewriteRule ^folder/([^/]*)$ folder/test\.php?str=$1&%{QUERY_STRING}