Как получить чистый URL, используя php - PullRequest
0 голосов
/ 26 ноября 2011

Если у меня есть поле поиска GET, как я могу отправить его на чистый URL (например, /search/keyword вместо index.php?fn=search&term=keyword)?Я не хочу использовать Javascript, чтобы перезаписать событие отправки формы, если это вообще возможно.

Спасибо.

Ответы [ 4 ]

2 голосов
/ 26 ноября 2011

Я предполагаю, что из ваших тегов (.htaccess) вы используете apache, если вы можете использовать механизм mod_rewrite, чтобы сделать ваши строки запросов более дружественными к SEO.

В Интернете есть несколько очень хороших ресурсов, таких как этот

По сути, вам нужно сделать

Убедитесь, что mod_rewrite установлен / включен на сервере

Включите перезапись мод и настройте правила

(согласно хорошему ресурсу здесь ), чтобы конвертировать из

http://www.best -food-of-the-usa.com / index.php?операция = верх и штат = аризона & город = меза и лимит = 10

до

http://www.best -food-of-the-usa.com/arizona / mesa / top10.html

вы можете использовать правило

RewriteRule ([a-zA-z]+)/([a-zA-z]+)/top10\.html$ index.php?operation=top&state=$1&city=$2&limit=10

Очевидно, что вы можете сделать это правило либо более простым и более общим для обработки всех ваших строк запроса, либо вы можете настроить его для каждого URLВы хотите переписать.

Запомните и обновите ваше приложение, чтобы оно указывало на новые URL перезаписи!

0 голосов
/ 17 октября 2013

Вы делаете POST-вызов к вашему index.php, а затем перенаправляете на красивый URL.

index.php:

<?php
if (!empty($_POST["fn"])){
  $search = $_POST["fn"];
  $keyword = $_POST["term"];

  header("Location: http://www.yourwebsite.com/$search/$keyword");


}else{

 // Show your content

}

?>

Конечно, вы должны использовать mod_rewrite, чтобы обработать васхороший URL.

0 голосов
/ 26 ноября 2011

Вы должны использовать JavaScript. Вы можете перенаправить PHP-скрипт для перехода на «чистый» URL-адрес, но даже тогда вы все равно сначала перейдете на «уродливый» URL-адрес.

0 голосов
/ 26 ноября 2011

Я настоятельно рекомендую вам использовать Framework, такой как CodeIgniter или CakePHP .У них обоих есть способность чистого URL и многое другое.

...