2016-02-03 2 views
0

Мой текущий URL, как:Codeigniter Сделать URL SEO Friendly

www.hostname.com/get_city/ 

(этот URL уже укоротить с помощью маршрутов) Здесь get_city мое имя метода и теперь , что я точно хочу ...

1) удалить имя контроллера из URL

2) передача выбранного города значение из выпадающего списка и установить в URL в качестве параметра

Так, обязательна гиперссылка является: www.hostname.com/california ИЛИ www.hostname.com/newjersey

Примечания: Я знаю, как использовать маршруты, но в таком случае, как сделать динамический URL ?! И пожалуйста, не дайте мне прямую ссылку на EllisLab документы, потому что я уже пробовал эти вещи

+0

Если вы ** уже пробовали эти вещи **, а не кричать об этом на людей, которые пытаются помочь вам, * показать им * то, что у вас есть сделанный. Это поможет избавить людей от этих предложений и может выявить недостатки в вашем подходе. – Will

ответ

0

Для динамического маршрута в CodeIgniter:

попробовать так:

в файле routes.php скопируйте и вставьте эти коды:

require_once (BASEPATH . 'database/DB' . EXT); 
require_once (BASEPATH . 'helpers/url_helper' . EXT); 
require_once (BASEPATH . 'helpers/text_helper' . EXT); 
$db = &DB(); 

$query = $db -> get('news'); 
$result = $query -> result(); //result return all records 
foreach ($result as $row) { 
    $string = rawurlencode(str_replace(' ', '-', strtolower($row -> subject))); 
    $route[$string] = "controller/news_details/$row->id"; 
} 

так что вы можете изменить $ string любой строкой, которую хотите.

затем попробуйте ввести новый URL-адрес и посмотреть, что маршруты будут работать нормально.

Примечание: Файл .htaccess должен быть удаление index.php в URL

надежду, что эта помощь.

+0

Возможно, он не использует маршруты базы данных. – user4419336

+0

Я думаю, он хочет сделать динамический URL! –

0

Вы можете попробовать с помощью метода "_remap".

Проверьте официальную документацию для получения дополнительной информации о поведении функции:

http://www.codeigniter.com/user_guide/general/controllers.html

С уважением.

+0

Codeigniter Doc переехал сюда. http://www.codeigniter.com/docs – user4419336

0

Вам необходимо настроить маршруты в приложении/config/routes.PHP

После существующих маршрутов добавить

$route['([a-z]+)'] = 'controller_name/method_name/$1'; 

Но это перезаписать все маршруты и до этого маршрута вы должны объявить все маршруты для вас контроллеров

$route['product/:any'] = 'product/$1'; 
$route['catalog/:any'] = 'catalog/$1'; 

и после

// this route be used when previous routes is not suitables 

$route['([a-z]+)'] = 'controller_name/method_name/$1'; 

DOCS:

http://code-igniter.ru/user_guide/general/routing.html

CI2: URI Routing

CI3: URI Routing