2011-10-22 117 views
1

我有一个PHP文件位于一个文件夹(“www.mysite.com/folder/test.php”),它接受一个get参数(str)并让我们说print 。为了使网址搜索引擎友好,我试图重写它是这样的:.htaccess重写文件夹也影响其子文件夹

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

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

怎么能防止呢?

回答

2

看:

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

应该解决您的问题 - 这只是确保在被请求的URL既不是一个实际的文件,也没有目录服务器上。

1

当你告诉它“任何字符”时,它认为你确实的意思是任何字符

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

感谢您的快速回答,我试过你的解决方案,但同样的事情发生,它不会读取位于/文件夹/ css,文件夹/图像/文件夹/ js的任何css,js和图像 – Tohid

+0

不读取或者看不到? –

+0

我认为我们应该排除包含除aA-zZ 0-9和+之外的任何字符串以及 - – Tohid