Apache дружественные URL - PullRequest
0 голосов
/ 05 мая 2010

У меня есть небольшая система CMS, написанная на PHP и работающая на Apache. Формат URL, которые использует / генерирует эта система CMS:

/ 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 таким простым способом?

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

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 05 мая 2010

ну, положив что-то вроде

RewriteEngine on

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

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

1 голос
/ 05 мая 2010

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

0 голосов
/ 27 марта 2015

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

и т. Д.

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

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

RewriteRule ^ my-pages /(.). 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  
}


?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...