Я пытаюсь перенаправить веб-страницу в зависимости от параметров URL. За последние пару дней я прошел через очень много обучающих программ и ответов на стек, не находя выхода из этого. Я не программист, но узнал все, что знаю о php и html-кодировании, используя stackflow. Так что спасибо всем.
www.domain.com/women/product?id=08607080
хотел бы перенаправить на
www.domain.com/women/Accessories/product?id=08607080
это код, который я использую сейчас, но он направляет
www.dmail.com/women
Помогите, пожалуйста
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/womenconfig.inc.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php';
mysql_connect(HOST, USERNAME, PASSWORD) or die(mysql_error());
mysql_select_db(DB) or die(mysql_error());
$ArtNumber = isset($_GET['id'])?$_GET['id']:Null;
$ArtNumber = isset($_GET['id'])?$_GET['id']:Null;
$query = "(SELECT * FROM " . implode(' WHERE ArtNumber=\'' . $ArtNumber . '\') UNION (SELECT * FROM ', array_keys($shops_arr)) . ' WHERE ArtNumber=\'' . $ArtNumber . '\' ) ';
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);$ArtNumber = $row['ArtNumber'] ;
$ProductCategory1 = $row['ProductCategory1'] ;
$ProductCategory2 = $row['ProductCategory2'] ;
$ProductCategory3 = $row['ProductCategory3'] ;echo "<script>window.location = ''/women/Accessories'.$ProductCategory1.'/product?id=',$ArtNumber,''</script>";
?>
Как сказал @arkassha, вы должны установить правильный HTTP-заголовок (Location: url) или использовать возможности веб-сервера. Вот пример перенаправления через заголовок местоположения:
<?php
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/womenconfig.inc.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/functions.inc.php';
mysql_connect(HOST, USERNAME, PASSWORD) or die(mysql_error());
mysql_select_db(DB) or die(mysql_error());
$ArtNumber = isset($_GET['id'])?$_GET['id']:Null;
$ArtNumber = isset($_GET['id'])?$_GET['id']:Null;
$query = "(SELECT * FROM " . implode(' WHERE ArtNumber=\'' . $ArtNumber . '\') UNION (SELECT * FROM ', array_keys($shops_arr)) . ' WHERE ArtNumber=\'' . $ArtNumber . '\' ) ';
$result = mysql_query($query) or die(mysql_error());
$row = mysql_fetch_array($result);$ArtNumber = $row['ArtNumber'] ;
$ProductCategory1 = $row['ProductCategory1'] ;
$ProductCategory2 = $row['ProductCategory2'] ;
$ProductCategory3 = $row['ProductCategory3'] ;header("Location: /women/Accessories/product?id=$ArtNumber");
?>
Здесь следует отметить, что заголовки должны отправляться перед любым содержимым.
Что касается второго варианта в случае apache, вы можете использовать правила переписывания: http://kb.mediatemple.net/questions/85/Using+.htaccess+rewrite+rules#gs
Вы также можете перенаправить через javascript, как вы упомянули, но это не является предпочтительным решением.
window.location.replace(" ''/women/Accessories'<?php echo "{$ProductCategory1}'/product?id={$ArtNumber}'' "; ?>");
пожалуйста, попробуйте это.