我正在恢复一个网站,允许通过管理面板上传只允许公共文件夹中的index.php脚本。困扰我的是我使用ckeditor + pgrfilemanager,它们位于公共文件夹中并包含所需的php文件。
根据SO中知识渊博的人的建议,我发送了一个对此.htaccess片段的引用:
RewiteEngine On
RewriteCond %{REQUEST_METHOD} ^PUT$ [OR]
RewriteCond %{REQUEST_METHOD} ^MOVE$
RewriteRule ^/public/(.*)\.php /public/$1.nophp
我的问题是这将如何影响公共子文件夹中的php文件?
另一个问题是我真的不确定你的ZF项目的最终.htaccess你看起来是什么样的。目前正在阅读.htaccess手册,因为我并不熟悉它所以不确定我的更改
这是我想提出的内容
SetEnv APPLICATION_ENV production
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
RewriteCond %{REQUEST_METHOD} ^PUT$ [OR]
RewriteCond %{REQUEST_METHOD} ^MOVE$
RewriteRule ^/public/(.*)\.php /public/$1.nophp
AddHandler cgi-script .html .htm .shtml .php .php3 .phtml .phtm .pl .py .cgi .js .sh .jsp .asp
Options -ExecCGI
如果我能向有经验的人学习,我会很高兴。 谢谢
答案 0 :(得分:1)
如果public
中有真正的子文件夹,则根.htaccess文件不会影响其中的文件。 Apache找到最低的文件夹并查找指令。
.htaccess文件中的不同组件看起来不错,但它们不正常。这样的事情会更好:
SetEnv APPLICATION_ENV production
AddHandler cgi-script .html .htm .shtml .php .php3 .phtml .phtm .pl .py .cgi .js .sh .jsp .asp
Options -ExecCGI
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteCond %{REQUEST_METHOD} ^PUT$ [OR]
RewriteCond %{REQUEST_METHOD} ^MOVE$
RewriteRule ^/public/(.*)\.php /public/$1.nophp [L]
RewriteRule ^.*$ index.php [NC,L]