使用 apache 身份验证的 Uploadify

使用 apache 身份验证的 Uploadify

我正在尝试让一个 Web 应用程序在我的服务器上运行。该应用程序正在使用 uploadify,这是我现在唯一无法运行的部分。

我有一个别名可以访问该应用程序:(在 /etc/apache2/conf.d/appalias 中)

Alias /showGreatApp /home/user/greatapp

<Directory /home/user/greatapp>
    AllowOverride All
    AuthType Basic
    AuthName "Welcome to Great App"
    Require valid-user
    AuthUserFile /etc/apache2/appuser-htpasswd
</Directory>

文件夹 /home/user/greatapp 中的 webapp 结构:

.htaccess (see content below)
app
  application
  assets  (includes uploadify : assets/js/uploadify)
index.php (configured to use application-folder "./app/application")
uploads
  .htaccess (see content below)

第一个 htaccess 文件 (/home/user/greatapp/.htaccess) :

<IfModule mod_rewrite.c>
     RewriteEngine on
     RewriteBase /showGreatApp/

# - (1) First try only these Three lines, not the other blocks (mod_security and mod_php5).
# - With this setup everytihing in the app works except the fileupload (uploadify).
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php [L]

# - (3) From example.
# - but with the different app-structure I have no idea hov to apply it to my case.
    RewriteCond %(index\.php|(.*)\.swf|uploads|app|robots\.txt)
    RewriteRule ^(.*)$ index.php [L]
</IfModule>

# - (2) Added this to setup (1).
<IfModule mod_security.c>
    SecFilterEngine Off
    SecFilterScanPOST Off
</IfModule>

# - Later tests, did not seem to make any difference.
<Ifmodule mod_php5.c>
    SecFilterEngine "off"
    SecFilterScanPOST "off"
</Ifmodule>

使用第一个设置(1)运行应用程序后,尝试上传文件时浏览器中出现“HTTP 错误”,并且在服务器日志中我收到:

192.168.1.196 - - [15/Jan/2014:21:10:08+0100] "POST /showGreatApp/ajax/project/issue_upload_attachment HTTP/1.1" 401 788 "-" "Shockwave Flash"

HTTP 状态代码 401 - 未授权。因此,我尝试使用代码 (2) 来补充设置 (1)。

我还将 htaccess 文件添加到文件夹 /home/user/greatapp/uploads/.htaccess:

AuthType None
Require all granted
Satisfy Any

然后我在浏览器中收到 IO 错误而不是 HTTP 错误,但服务器日志仍然显示代码 401。

然后我尝试了一些不同的设置(3 种不同的形式),受到以下页面的启发:http://ellislab.com/forums/viewthread/109751/

但由于应用程序结构存在差异,我只能盲目操作,因此我并不真正理解 Apache 重写语法。即使在以下人员的帮助下,我也不懂:http://httpd.apache.org/docs/current/rewrite/remapping.html

我能得到一些帮助吗?

答案1

使用 BASIC 身份验证的 Uploadify 要求使用 POST 发送身份验证凭据。以下是示例:

https://foo:[电子邮件保护]/showGreatApp/ajax/项目/issue_upload_attachment

请注意这并不安全:

用户名和密码以 Base64 编码的纯文本形式通过网络发送,而不是加密。因此,如果您要利用基本身份验证,则使用 SSL 来保护通信非常重要。

如果您拥有最新版本的 Apache,AuthBasicFake 是更好的选择:

<Location /showGreatApp/ajax/project/issue_upload_attachment>
 AuthBasicFake demo demopass
</Location>

此外,将其添加到您的.htaccess

order allow,deny
deny from all
Options All -Indexes

参考

相关内容