У меня есть html-файл с формой:
<form method="get" enctype="multipart/form-data" action="bin/a_python_script.cgi">
(мне нужно использовать method = "get", потому что когда я использую method = "post", я получаю странное сообщение "Страница истекла"проблемы с кнопкой «назад» в Internet Explorer 8)
Страница результатов показывает это в адресной строке:
http://www.mydomain.com/bin/a_python_script.cgi?var1=a+variable&var2=another+variable&Submit=submit+this
Мой предпочтительный вывод в адресной строке будет:
http://www.mydomain.com/bin/a_python_script.html
Как мне спрятать все после ".cgi?"?
А можно ли заменить ".cgi" на ".html"?
К сожалению, нет других вариантов, кроме как изменить метод формы с «get» на «post».
GET кодирует все поля формы в URL. Нет способа скрыть что-либо, не удаляя данные.
Быстрый поиск в Google по запросу «предотвратить сообщение об истечении срока действия страницы» дает довольно много результатов (примеры в основном PHP, но концепцию можно перенести на любой язык):
Google - запретить сообщение об истечении срока действия страницы
Ваш метод формы должен быть «отправлять», а не «получать».
В вашем скрипте cgi вы должны иметь возможность извлекать данные публикации.
для изменения расширения с.htaccess это должно работать.
Оставьте форму как POST, затем используйте шаблон post-redirect-get , чтобы позволить пользователю вернуться или обновить без предупреждения.
Согласитесь с Джастином Нисснером - однако после попадания вы можете сделать перенаправление на другую страницу, чтобы параметры не остались в URL.Или вы можете отправить форму через ajax в фоновом режиме, чтобы пользователь не заметил отправленные параметры