0

我有一个基于 Silverstripe cms 的站点设置并运行良好。我创建了一个进行文件转换的 php 脚本(不是插件)。我将脚本上传到站点根目录,并在其中创建了一个带有“全部允许”的 .htaccess,我将 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 ###
4

1 回答 1

1

我不熟悉 Silverstripe,但听起来 root htaccess 可能正在重定向。但是,allow from all/777 的安全性有点冒险!

编辑:查看https://github.com/silverstripe/silverstripe-in ​​staller/blob/master/.htaccess 的 htaccess :

RewriteCond %{REQUEST_FILENAME} !-f

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

RewriteCond %{REQUEST_FILENAME} !-d
于 2012-10-11T23:18:42.393 回答