- PHP redirect to localhost
- 2 Answers 2
- Как сделать редирект на php?
- Что за редирект?
- Особенности редиректа на php
- Применение редиректа header()
- PHP Redirects – How to Create and Configure them
- PHP Redirect Basic Syntax
- PHP Redirect Example
- This my page2
- PHP Redirect with Absolute URL
- PHP Redirect with Time Delay
- Conclusion
- Recent Posts
- Xampp — Redirect external url to localhost
- 4 Answers 4
PHP redirect to localhost
The redirection should NOT be done to the live server’s localhost, but to my local machine I’m currently using to develop. This is simply to test a payment gateway I’ve added to my site (the payment gateway requires a valid URL to redirect to, hence I can’t use localhost). The payment gateway will redirect to
If php can’t manage this, can I do this with apache redirects? I also want to send all GET and POST parameters received at the live server to my local page.
The question is vague. Certainly you can send a redirection header to a client. The reserved hostname localhost is always resolved by the client, not by the server, so it will point to the client system. The whole flow is unclear so, that I am not sure if that helps.
Any live server CANT access your local machine.. I would also add BY ANY MEANS.. This is just not possible.. The localhost is just a server that is running on your system..and that wont be accessible to any of the live systems
Hmmm! Using my local IP address is not an option here. Isn’t there any way I can set the URL without it being resolved, or as Sanchit5 said, is this simply impossible?
Technically this would be possible if I add javascript to my test.php and let the JS do the redirect. But then I have to set all the GET and POST parameters manually.
2 Answers 2
You don’t need to send the HTTP 1.1 header and that might be what’s preventing the redirect from working. Your web server will add this one automatically because it needs to send the status code. Instead, pass the 307 status as header()’s third parameter:
header('location: http://localhost/some/url', true, 307);
The redirect headers are parsed by your browser, so «localhost» will be the same machine your browser is running on.
To pass all the GET parameters, you could append $_SERVER[‘QUERY_STRING’] to the URL:
header('location: http://localhost/some/url?' . $_SERVER['QUERY_STRING'], true, 307);
POST parameters are more complicated. You’ll need to build your own URL by concatenating everything from the $_POST array. Be sure to urlencode() the values.
$redirect_url = 'http://localhost/some/url?'; foreach($_POST as $key => $value) < $redirect_url .= $key . '=' . urlencode($value) . '&'; >header('location: ' . $redirect_url, true, 307);
And bear in mind you can only redirect a POST request as a GET. But if you’re just building a mock for testing your gateway integration, that should be fine.
Как сделать редирект на php?
Послать каждый может. А вот правильно перенаправить – это целое искусство. Но еще труднее дается перенаправление пользователей на нужный путь в интернете. Для этого лучше всего подходит редирект на php .
Что за редирект?
В веб-программировании возникают ситуации, когда нужно перенаправить пользователя, переходящего по ссылке, на другой адрес. Конечно, на первый взгляд реализация такого перенаправления выглядит немного « незаконной ». На практике же, такой редирект востребован не только среди злоумышленников, но и среди честных вебмастеров:
В каких случаях может потребоваться редирект:
- Когда происходит замена движка сайта – в результате этого меняется архитектура всего ресурса. После чего возникает проблема, как сделать редирект;
- При перекройке структуры ресурса – происходит добавление, удаление или перенос целых разделов или одного материала. Пока происходит этот процесс, временно можно организовать перенаправление пользователя на нужный раздел;
- Если сайт недавно сменил свое доменное имя – после смены имени домена старое еще некоторое время будет фигурировать в поисковой выдаче. В этом случае редирект пользователя на новый домен будет реализован поисковой системой автоматически;
- В процессе авторизации – как правило, на большом сайте есть две группы пользователей: обычные посетители и администраторы ресурса. В таком случае имеет смысл реализовать редирект каждого пользователя согласно его правам и роли. После авторизации администратор или модераторы сайта попадают в административную часть ресурса, а посетители – на пользовательскую часть ресурса.
Особенности редиректа на php
В отличие от других языков php обладает некоторыми преимуществами в реализации редиректа:
- Php является серверным языком программирования. Поэтому перенаправление будет происходить не в html коде страниц, отображаемых в браузере, а в скрипте, размещенном на сервере;
- Редирект на php может быть реализован несколькими способами. Что во многом расширяет его применение;
- Благодаря обработке данных на сервере перенаправление, реализованное с помощью php, менее восприимчиво к действию фильтров поисковых систем.
Для редиректа в php используется функция header() . Она применяется для отправки заголовка http . Ее синтаксис:
void header ( string $string [, bool $replace = true [, int $http_response_code ]] )
Принимаемые функцией аргументы:
string $string – строка заголовка;
Существует два типа этого аргумента. Первый предназначен для отправки кода состояния соединения. Он начинается с «HTTP/». Другой тип вместе с заголовком передает клиентскому браузеру код состояния (REDIRECT 302). Этот аргумент начинается с «Location:»
- bool $replace – является необязательным атрибутом типа bool . Отвечает за переопределение предыдущего заголовка. Если будет задано true , то предыдущий заголовок или заголовки одного типа будут заменены. Если в аргументе задано false , то перезапись заголовка не состоится. По умолчанию, задано значение true ;
- http_response_code – аргумент принудительно устанавливает код ответа HTTP . Установка кода пройдет успешно при условии, что аргумент string не будет пустым.
Код состояния HTTP представляет собой часть верхней строки ответа сервера. Код состоит из трех цифр, после которых идет поясняющая надпись на английском языке. Первая цифра отвечает за класс состояния. Редиректу соответствуют коды от 300 до 307. Их полное описание можно найти в соответствующей технической документации.
При использовании функции header() для редиректа внешних ссылок большое значение имеет место расположения ее вызова. В коде он должен находиться выше всех тегов html :
Применение редиректа header()
Для демонстрации действия функции на локальном сервере нужно создать два файла. Один из них назовем redirect.php , а другой redirect2.php . Внутри первого разместим вызов функции в следующем формате:
В другом файле помещаем строку:
echo "Привет! Вы находитесь в файле redirect2.php";
PHP Redirects – How to Create and Configure them
PHP redirect is a method used to redirect a user from one page to another page without clicking any hyperlinks.
This will be helpful in such circumstances when you want to redirect a certain page to a new location, change the URL structure of a site and redirect users to another website.
Redirection is very important and frequently used in Web Development phases.
There are several reasons to use PHP redirect, including, Merger of two websites, Change of business name, Redirect traffic to updated content and many more.
In this tutorial, we will learn how to redirect PHP page with the header() function.
PHP Redirect Basic Syntax
To use a redirect in PHP, we use a header() function. The header() function is an inbuilt function in PHP which is used to send a raw HTTP header to the client.
Basic syntax of header() function in PHP redirect is shown below:
header( header, replace, http_response_code )
Each parameter is described below:
- header:
This is used to hold the header string to send - replace:
Indicates the header should replace a previous similar header, or add a second header of the same type - http_response_code:
This is used to hold the HTTP response code
PHP Redirect Example
In this section, we will give you a quick example of how to create a redirect using PHP.
In this example, we will create a page1.php that contains code that issues a redirect and page2.php that contains just HTML.
Add the following contents:
Save and close the file. Then, create a page2.php:
Add the following contents:
This my page2
Save and close the file, when you are finished.
Next, you can test the URL redirection by visiting the page1.php at URL http://localhost/page1.php. You will be redirected to the page2.php as shown below:
You can also test the URL redirection with Curl command:
curl -I http://localhost/page1.php
You should see the following output:
HTTP/1.1 302 Moved Temporarily
Server: nginx/1.4.6 (Ubuntu)
Date: Wed, 11 Sep 2019 09:48:42 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4.29
Location: page2.php
By default, search engine replies with the default response code 302 while Browser reply with the response code 30x.
If you want to redirect page1.php to another site https://www.webservertalk.com with response code 301 then edit the php1.php file with the following contents:
Add the following contents:
header(«Location: https://www.webservertalk.com»,TRUE,301);
exit;
?>
Save and close the file. Then, check PHP redirect again with the Curl command:
curl -I http://localhost/page1.php
You should see the following output:
HTTP/1.1 301 Moved Permanently
Server: nginx/1.4.6 (Ubuntu)
Date: Wed, 11 Sep 2019 10:21:58 GMT
Content-Type: text/html
Connection: keep-alive
X-Powered-By: PHP/5.5.9-1ubuntu4.29
Location: https://www.webservertalk.com
PHP Redirect with Absolute URL
In the above examples, The URL does not contain a hostname, this will work on modern browser. But, it is better to redirect to an absolute URL.
You can achieve this by editing the page1.php file as shown below:
Make the following chages:
header(‘Location: http://’ . $_SERVER[‘HTTP_HOST’] . ‘/page2.php’);
exit;
?>
Save and close the file when you are finished. Then, you can test it with your web browser or Curl command.
PHP Redirect with Time Delay
You can also redirect PHP page to another page with refresh function instead of Location.
For example, create a page1.php that redirect to page2.php after 10 seconds:
Add the following contents:
header( «refresh:10; url=/page2.php» );
echo «Redirecting in 10 secs.»;
exit;
?>
Save and close the file. Then, check the URL redirection by visiting the URL http://localhost/page1.php. You should see the following page:
Above page indicates that page1.php will redirects after 10 seconds.
Conclusion
In the above tutorial, we have learned how to redirect URL from one page to another with PHP header() function.
I hope you have now enough knowledge on how PHP redirection works. For more information, you can visit the PHP redirect documentation at PHP redirect.
Recent Posts
- Forcepoint Next-Gen Firewall Review & Alternatives
- 7 Best JMX Monitoring Tools
- Best PostgreSQL Backup Tools
- Best CSPM Tools
- Best Cloud Workload Security Platforms
- Best Automated Browser Testing Tools
- Event Log Forwarding Guide
- Best LogMeIn Alternatives
- Citrix ShareFile Alternatives
- SQL Server Security Basics
- Cloud Security Posture Management Guide
- Cloud Workload Security Guide
- The Best JBoss Monitoring Tools
- ITL Guide And Tools
- 10 Best Enterprise Password Management Solutions
Xampp — Redirect external url to localhost
I use an installation of Xampp to test my files locally before I upload them to my web server. My web pages usually contain a lot of ‘hardcoded’ links, which means to test any links (or any forms etc) I need to change the hardcoded link to point to localhost, and then rechange it after I am done testing. What I am looking for is a way to redirect an external url to point to my localhost folder, so I could set it as my website and then I would be able to make changes before I upload them. For example, if I were to enter ‘www.mysite.com/example/view.php» in my browser, I would actually be looking at ‘localhost/example/view.php’. Is such a thing possible?
4 Answers 4
Two solutions come to my mind:
- Use relative URLs (preferred)
- Add your external URL to your hosts file which can be found either in C:\WINDOWS\system32\drivers\etc\hosts (Windows) or /etc/hosts (Linux) Just add this line: www.mysite.com localhost Maybe you have to use your servers ip instead of mysite.com, I’m not sure right now
I just stumbled upon this.
Thanks. This was very useful today. I wanted to record a tutorial movie as a user would see it (on www.yoururl.com) but using a local installation. Worked great.
Yes : dont use hardcoded links !
Seriously, I’m not sure if I understood correctly. If you are talking of URLs in your pages pointing to other pages on the same site, you should use links of the form «/example/view.php» instead of «http://www.mysite.com/example/view.php». That way, you will always point to the same site.
If those links go to external sites, but you need to redirect them locally for testing (I cant see why this would be the case, but you never know . ) then you could use a varable in a config file. The you would just need to change this variable at one place .
No I haven’t been using relative links, perhaps I should start to. It just means that I will need to do things like «../../../images/icons/feed.png» instead of «mysite.com/images/icons/feed.png»