有关存储用户上传文件的最佳做法是什么?
目前,我在以下方法中存储文件:
<web_app_root>/course_material/<term_id>/<course_id>/<file_id>
Run Code Online (Sandbox Code Playgroud)
如您所见,文件是根据数据库中的键存储的.我认为这更安全,因为我不必过滤文件名并将不安全的字符转换为安全字符.
但是,我正在开始一个新项目,并想知道将Web应用程序的文件系统与数据库紧密联系起来是不是一个坏主意.我应该以更易读的格式存储文件吗?
<web_app_root>/course_material/<term_name_underscored>/<course_name_underscored>/<file_name_underscored>
Run Code Online (Sandbox Code Playgroud)
如果是这样,过滤掉文件名以保证安全的最佳方法是什么?或者我目前正在做的最佳做法是什么?
我有这个旧的调查链接已经被另一个链接取代,所以基本上我希望任何人都试图访问该URL:
http://mywebsite.com/survey/view_survey.php?surveyID=1
要重定向到:
http://mywebsite.com/survey/view_survey.php?surveyID=2
我可以在Apache配置或htaccess文件中执行此操作吗?
我在httpd.conf文件的Redirect部分尝试了以下规则:
Redirect 301 /survey/view_survey.php?surveyID=1 http://mywebsite.com/survey/view_survey.php?surveyID=2
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我怀疑在处理规则时不使用GET参数.
我唯一的选择是破解我的代码以重定向特定的surveyID吗?
根据使用重写规则的建议,我在.htaccess文件中尝试了以下内容:
RewriteRule ^survey/view_survey\.php\?surveyID=1525$ /survey/view_survey.php?sur
veyID=1607
Run Code Online (Sandbox Code Playgroud)
但这不起作用.我确实已经启动并运行了重写引擎,因为我当前正在运行另一个重写规则.