Apache 301 перенаправление и сохранение данных post
я реализовал SEO URLs, используя Apache 301 перенаправляет на перенаправление.cfm ' в корне веб-сайта, который обрабатывает все URL здания и доставки контента.
данные Post теряются во время перенаправления 301.
не удалось найти решение до сих пор, попробовали исключить метод post из перезаписи - в худшем случае мы могли бы использовать старые URL-адреса типов для методов post.
есть что-то, что можно сделать?
спасибо
3 ответов
данные POST отбрасываются при перенаправлении, так как клиент выполнит запрос GET на URL, указанный 301. Период.
единственный вариант-преобразовать параметры POST, чтобы получить параметры и прикрепить их к концу URL-адреса, на который вы перенаправляете. Это невозможно сделать в a .htaccess файл переписать.
один из вариантов-поймать запросы POST на URL-адрес для перенаправления и передать его на страницу для обработки перенаправления. Вам нужно будет сделать транспозицию параметры в коде затем выдают заголовок перенаправления с параметром, добавленным новым url-адресом таким образом.
Update: как указано в комментариях к этому ответу, если вы перенаправляете на другой URL, указывающий параметры POST, и этот URL также доступен без параметров (или параметры являются переменными), вы должны указать ссылку на канонический URL для страницы.
скажем, что перенаправление формы POST перенесено на следующий ресурс GET:
http://www.example.com/finalpage.php?form_data_1=123&form_data_2=666
Вы хотели добавьте эту ссылку в раздел head страницы:
<link rel="canonical" href="http://www.example.com/finalpage.php" />
это гарантировало бы, что все значение SEO будет дано http://www.example.com/finalpage.php и избегайте возможных проблем с дублирующим контентом.
С помощью 307
должно быть именно то, что вы хотите
307 Temporary Redirect (since HTTP/1.1)
In this case, the request should be repeated with another URI; however, future requests
should still use the original URI.[2] In contrast to how 302 was historically implemented,
the request method is not allowed to be changed when reissuing the original request. For
instance, a POST request should be repeated using another POST request
использование 301 перенаправления для общего перезаписи URL-адресов-это не путь. Это проблема производительности (особенно для мобильных устройств, но и в целом), так как она удваивает количество запросов на вашу страницу.
подумайте об использовании переписывания URL-адресов инструмент, как Тьюки по URLrewriteFilter
или apache mod_rewrite
.
то, что сказал Рэй, все верно, это просто дополнительный комментарий к вашему общему подходу.