允许脚本在cms内执行

时间:2012-10-11 23:16:06

标签: php .htaccess

我有一个站点设置并且运行良好,位于Silverstripe cms。我创建了一个PHP脚本(不是插件)来进行一些文件转换。我将脚本上传到站点根目录,并在其中创建了一个.htaccess,其中包含“Allow from all”,并且我将777授予了文件夹权限,以允许从浏览器访问此脚本。但是,该网站的“找不到页面”页面会显示出来。

有人可以解释我在这里缺少的东西吗? 这是htaccess文件中的一些条件:

RewriteCond %{REQUEST_URI} !(\.gif)|(\.jpg)|(\.png)|(\.css)|(\.js)|(\.php)$
RewriteCond %{REQUEST_URI} ^(.*)$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L]

这是当前的htaccess文件:

Options +FollowSymlinks 
### SILVERSTRIPE START ### 
<IfModule mod_dir.c> DirectorySlash Off </IfModule> 
RewriteEngine On RewriteBase / RewriteRule ^index.html$ http://www.domain.com/ [R=301,L] RewriteCond %{REQUEST_URI} !(\.gif)|(\.jpg)|(\.png)|(\.css)|(\.js)|(\.php)$ 
RewriteCond %{REQUEST_URI} ^(.*)$ 
RewriteCond %{REQUEST_URI} !^/csv_compare 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* sapphire/main.php?url=%1&%{QUERY_STRING} [L] 
### SILVERSTRIPE END ###

1 个答案:

答案 0 :(得分:1)

我不熟悉Silverstripe,但听起来根htaccess可能会重定向。但是,所有/ 777允许的安全性有点冒险!

编辑:查看https://github.com/silverstripe/silverstripe-installer/blob/master/.htaccess处的htaccess:

RewriteCond %{REQUEST_FILENAME} !-f

如果请求不是有效文件,那就告诉系统重定向到框架。如果您需要一个目录,那可能就是问题所在。您可以在上面的行之前添加以下内容:

RewriteCond %{REQUEST_FILENAME} !-d