.htaccess 未找到在Drupal中名称中包含阿拉伯字符的私有文件的文件

.htaccess 未找到在Drupal中名称中包含阿拉伯字符的私有文件的文件,.htaccess,drupal-7,drupal-permissions,.htaccess,Drupal 7,Drupal Permissions,编辑:现在,我已经设法解决了错误500。现在我收到了一个纯Drupal的“未找到文件”,用于在文件名中包含阿拉伯字符的私有文件。我已经检查了file_managed表,如果我将所提到的任何文件的文件名从阿拉伯语更改为英语,那么错误就消失了。有人知道为什么Drupal在处理文件名中带有unicode(阿拉伯语)字符的私有文件时会出现问题吗 谢谢 问题可能是您保存文件时没有设置允许web服务器用户读取文件的权限。我将建议一个完全忽略.httaccess的解决方案,因为您没有向我们提供该文件的内容 [

编辑:现在,我已经设法解决了错误500。现在我收到了一个纯Drupal的“未找到文件”,用于在文件名中包含阿拉伯字符的私有文件。我已经检查了file_managed表,如果我将所提到的任何文件的文件名从阿拉伯语更改为英语,那么错误就消失了。有人知道为什么Drupal在处理文件名中带有unicode(阿拉伯语)字符的私有文件时会出现问题吗


谢谢

问题可能是您保存文件时没有设置允许web服务器用户读取文件的权限。我将建议一个完全忽略.httaccess的解决方案,因为您没有向我们提供该文件的内容

[顺便说一句,root用户的uid为0。谁是用户1,为什么与她相关?]

  • 找出“谁”在运行apache
  • 确保“谁”可以读取您无法访问的文件
  • 假设您的web服务器是apache,此命令将告诉您哪个用户正在运行apache:

     $ ps aux|grep apach[e] 
    root     19874  1.0  0.6  84008 12736 ?        Ss   00:24   0:00 /usr/sbin/apache2 -D (...)
    apache   19876  0.0  0.4  48576  8380 ?        S    00:24   0:00 /usr/sbin/apache2 -D (...)
    (...)
    
    用户apache正在我的系统上运行二进制apache2。忽略显示谁启动了apache2的第一行。现在,让apache能够读取该文件

    $ chmod 644 /path/to/whereever/you/put/system/files/docFiles/nameoffile.pdf
    

    现在,每个人都可以读取该文件,所有者也可以对其进行写入

    是的,它可能与
    .htaccess
    文件的内容有关,但我们有洞察力。没有信息,没有具体答案:-(抱歉,现在已经过了我的就寝时间,所以我要上交。我可以建议你编辑你的问题,并添加任何相关的细节、测试案例等。你提供的信息越多,获得知情回复的机会就越大。我将删除我的答案,因为它不相关,从而将回复降至零——这可能有助于其他回复:)放入一些信息(
    .htaccess
    内容、日志文件等)。我们没有读心术:-你为什么提供私人文件?什么是“私有”文件?