2010-05-04 15 views
0

У меня есть небольшая система CMS, написанная на PHP и работающая на Apache. Формат URL-адресов, используемых этой системой CMS, составляет:Apache friendly urls

/display.php?PageID=xxx где xxx - это просто целое число. Как вы можете видеть, эти URL-адреса не очень дружелюбны ни для пользователей, ни для поисковых систем.

Я считаю, что с помощью mod_rewrite (или что-то в этом роде) и .htaccess файлов я должен был бы настроить Apache для перезаписи URL-адресов. Я искал информацию об этом раньше, но я не нашел никакого легкого метода для этого, он всегда включал возиться с регулярными выражениями, с которыми я не очень хорошо знаком.

Поскольку данный веб-сайт действительно прост и мал, всего 5-10 разных страниц, мне бы очень хотелось иметь возможность жестко программировать конфигурацию без каких-либо специальных правил или регулярных выражений.

Я просто хотел, чтобы отобразить дружественный URL к фактическому URL, может быть, как это:

/about = /display.php?PageID=44 
/products = /display.php?PageID=34 

т.д.

Можно ли настроить mod_rewrite плагин в основной способ, как это ?

Может ли кто-нибудь объяснить самый простой способ сделать это? Объясните это мне, как если бы я был ребенком :-)

Заранее благодарен!

+0

Термин, обычно используемый для обозначения того, что вы говорите, является «слизняком». См. Http://en.wikipedia.org/wiki/Slug_%28web_publishing%29 – cbednarski

ответ

2

хорошо положить что-то вроде

RewriteEngine on 

RewriteRule ^about$ ./display.php?PageID=44 
RewriteRule ^products$ ./display.php?PageID=34 

в вашем .htaccess -файла не должно быть большое дело, я думаю, что ...

+0

Я вижу, это выглядит достаточно просто. Отдай это. Благодаря :-) – HaukurHaf

0

URL Rewriting for Beginners - моя любимая статья в этой статье, она должна охватывать то, что вы ищете. Фактически, первый фактический пример, когда вы пишете файл .htaccess, почти идентичен тому, что вы хотите.

+0

Спасибо, я проверю эту статью! – HaukurHaf

0

Другим способом является фильтр динамического файла PHP с отображением страниц для или стратегии маршрутизации, такие как фреймворки, такие как воспламенитель кода drupal .... и ваш URL-адрес будет выглядеть как my-pages/about.html -> display.php? PageID = 44 my-pages/products.html -> display. php? PageID = 34

и так далее

Вот предложение для .htaccess файла и фильтр действия с этой стратегией

--- .htaccess файл ---- * RewriteEngine на

RewriteRule^my- страниц/(. ) .html $ MY-URL.php [QSA, L, E]

---------------- MY-URL.php ------- -

<?php 

$PREFIX = 'my-pages/'; //--- not used 
$mapping=array(
     'about' => 44, 
     'products' => 34 
); 
$pathinfo= pathinfo($_SERVER['REQUEST_URI']); 
/* $pathinfo['dirname'] -> my-pages 
    $pathinfo['basename'] -> ???.html 
    $pathinfo['extension']-> .html 
*/ 
$page = substr($pathinfo['basename'] ,0,-5); 


if(isset($mapping[$page]){ 
     // ---- redirect or include 
     YUOR CODE HERE 
} 
else { 
     //--- error 404 
      YUOR CODE HERE 
} 


?>