自从在.htaccess中设置重定向后,我已经实现了强制执行WWW的目标。并删除所有.php扩展名。但是,我认为使用https无效,因为我的$ _post现在提交表单时为空。请帮忙。
更新-我认为可以使用HTTPS。我删除了我的.htaccess代码的后两行,该行涉及删除php扩展名,并且我的表单可以再次使用。所以现在的问题是,如何在不丢失$ _POST数据的情况下删除网站上的php扩展名。 -更新
我尝试在.htaccess的%{SERVER_PORT} 80和%{HTTPS}之间切换!
这是我的.htaccess代码:
DirectoryIndex index.php
Options +FollowSymlinks
RewriteEngine on
Rewritecond %{HTTP_HOST} ^example.co.uk [NC]
#Tried using... Rewritecond %{SERVER_PORT} 80
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://www.example.co.uk/$1 [L,R=301,NC]
# This hides the php extensions
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]
这是我的表单标记:
<form autocomplete="off" name="productRequest" enctype="multipart/form-data" action="<?php echo "..".$_SERVER['PHP_SELF']."?item=".$item."&design=".$design."&option=".$option."&add=Y"; ?>" method="POST">
请注意,我也尝试过https://www.example.co.uk。$ _ SERVER ['PHP_SELF']
当表单调用自身时,我有:
$item = $_GET['item'];
$design = $_GET['design'];
$option = $_GET['option'];
$add = $_GET['add'];
if(!isset($item))
{
header('Location: ../index.php');
exit;
}
else if($add=='Y')
{
print_r($_POST);
exit;
}
我刚得到:Array()
答案 0 :(得分:1)
POST数据未被重定向后重新发送。 这项功能非常有用,可以在计算发布数据后(例如,在上传文件以显示统计信息之后)启用重定向。
解:改变<form>
到https