I need a domain example.com redirects to sub-domain a.example.com when I type on the address bar.
<script type="text/javascript">
$(function(){
var city = readCookie('city');
if(city==null && city==''){
window.location.href = 'http://' + city + '.example.com';
}
$('#citygo').change(function(){
var city = $(this).val();
createCookie('city', city, 28);
window.location.href = 'http://' + city + '.example.com';
});
});
</script>
<body>
<select id="citygo">
<option value="0">Select City</option>
<option value="amsterdam">Amsterdam</option>
<option value="newyork">New York</option>
<option value="london">London</option>
<option value="cardiff">Cardiff</option>
</select>
</body>
The cookie on the server side is not holding so the domain cannot remember sub-domain. What am i doing wrong? Any help will be very much appreciated.
<?php
$hour = time() + 50400;
setcookie(My_Site_Location, $_POST['citygo'], $hour);
$Loc=$_COOKIE["city"];
if(isset($_POST['city']))
$Loc=$_POST['city'];
if (empty($Loc)) {
header("Location: http://{$_COOKIE["city"]}.example.com");
} else {
header("Location: example.com/$Loc.php");
}
?>
I have faced same issue but i solved my problem using the below code in PHP You are not setting the path and expiration on the cookie. If you have subdirectories it is normally good to set a master cookie that is the root path '/'.
To read your cookie using PHP, try this...
$cookies = explode(';', $_SERVER['HTTP_COOKIE']);
...and search the array for your "city" cookie. Further docs on setting and reading cookies using entirely PHP, check here.
You must call this function before any other code is echoed to the page. (before headers)
This will help you
By default setcookie()
will use the current host as the domain; to override this, you must explicitly specify it:
setcookie(My_Site_Location, $_POST['citygo'], $hour, '/', 'example.com');
About the domain value, the manual says this:
Older browsers still implementing the deprecated RFC 2109 may require a leading
.
to match all subdomains.