2016-07-22 2 views
1

мне нужна страница, когда я загрузить его проверить ссылку напечатанный, например:
www.test.com/myphp.php=10
если он находит определенное число он перенаправляет на другую ссылку, например:
найдено www.test.com/myphp.php=10 перенаправляет на новости www.test.com/news/10.php.как перенаправить страницу, анализируя URL-адрес?

Как я могу это сделать и какую технологию использовать?

+0

Я бы рекомендовал вам использовать рутировку меня ThOD. Например, https://github.com/dannyvankooten/PHP-Router – nniicc

ответ

1

Во-первых, ваш синтаксис для переменных GET немного не работает. Предполагаю, вы имеете в виду начальные URL-адреса test.com/myphp.php?redirect=10 или что-то подобное? Потому что www.test.com/myphp.php=10 - плохой синтаксис.

Я предполагаю, что мы используем GET переменные, как описано выше в моем ответе:


Самый простой способ сделать это было бы просто установить заголовок расположения в PHP:

if(array_key_exists("redirect", $_GET)){ 
    #set header to redirect to new location 
    header("Location: /news/" . $_GET["redirect"] . ".php"); 
    #don't let the page do anything else 
    die(); 
}else{ 
    #do something if the GET variable doesn't exist 
} 

Обратите внимание, что таким образом вводится несколько уязвимостей, поэтому вы можете сделать что-то более продвинутое (например, intval переменную GET, чтобы они не могли вставлять скрипт в вашу переменную или просто addslashes() в значение переменной GET) ,

+0

Спасибо, что помогли мне, вы и другие помогли мне, теперь я могу сделать более динамичный сайт. * Мой английский не очень хороший, извините грамматические ошибки * –

1

Урл должен быть с именем параметра получения. http://www.test.com/myphp.php?news=10

if(isset($_GET['news']) && is_numeric($_GET['news'])) { 
    $newsUrl = 'http://www.test.com/news/' . (int)$_GET['news'] . '.php'; 
    header('location: ' . $newsUrl); 
    // or 
    // header('location: /news/' . (int)$_GET['news']); 
    die; 
} 
-2

Plain старый Javascript

function getQueryVariable(variable) 
{ 
    var query = window.location.search.substring(1); 
    var vars = query.split("&"); 
    for (var i=0;i<vars.length;i++) { 
      var pair = vars[i].split("="); 
      if(pair[0] == variable){return pair[1];} 
    } 
    return(false); 
} 

Если URL является www.test.com/myphp.php?id=10 Вызов getQueryVariable ("Идентификатор") возвращает 10

Затем вы просто перенаправляете с помощью

var number = getQueryVariable('id') 
window.location = "www.test.com/news/"+number+".php"; 
Смежные вопросы