除非我输入htaccess条目,否则无法上传文件

问题描述 投票:2回答:1

我有一个基于Concrete5的网站(不是我本人)。现在,当站点同时加载两个版本时,我在htaccess中添加了几行以在URL之后添加尾部斜杠。

但是,现在我无法将文件上传到该站点。我刚收到错误。用户还可以选择上传照片,他们也会收到错误消息。

我唯一可以解决的问题是,我可以进入htaccess并#删除我添加的行,将其保存,然后上传并删除#。尽管这可以让我在短期内上传,但这不是可行的解决方案,因为普通用户无法做到这一点。

我的htaccess是以下内容:

# -- concrete5 urls start --
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteBase /
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index.php
RewriteRule ^(.*)$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
# -- concrete5 urls end --

我注释掉这些行,以便我上传:

# -- concrete5 urls start --
RewriteEngine On
<IfModule mod_rewrite.c>
RewriteBase /
#RewriteCond %{REQUEST_URI} !(.*)/$
#RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_URI} !index.php
#RewriteRule ^(.*)$ /$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
# -- concrete5 urls end --

虽然看起来我可以上传但丢失尾随的斜杠,所以所有URL都弄乱了。

任何人都知道发生了什么事吗?仅供参考,我不是开发人员,但一定程度上可以理解。

.htaccess
1个回答
0
投票

您是否已更新所有内部链接(和表单提交URL)以包括尾部斜杠?

我的猜测是您将表单提交到不包含斜杠的URL。随后的301重定向将丢失所有已提交的POST数据(因为请求已被[[convert]]转换为GET)。您需要确保始终链接到规范URL。

© www.soinside.com 2019 - 2024. All rights reserved.