2009-10-10 3 views
0

Я хочу иметь основной раздел, который находится на services.php, а затем некоторые подразделы, такие как services_logodesign.php.Ошибка перезаписи мод

Я хочу, чтобы сделать внешний вид URL, как: Когда я нажимаю кнопку, чтобы открыть services_logodesign.php браузер должен показать «Услуги/дизайн логотипа»

У меня есть несколько других подразделов, это будет приятно иметь один код для любых других страниц.

+1

Что такое «проблема»? Я предполагаю, что вы знаете, что mod_rewrite - это ответ, какие правила переписывания у вас есть, которые не работают? – Kekoa

ответ

0

Самый простой способ сделать то, что вы хотите, - это перенаправить все запросы на сценарий диспетчера - index.php будет хорошим кандидатом для такого сценария диспетчера.

Ваш файл .htaccess в корневом каталоге вашего сайта, будет выглядеть следующим образом:

конфигурация
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 

Этот mod_rewrite будет посылать все запросы к index.php. Это означает, что запросы/услуги/дизайн логотипа/(кстати, пробелы в URL-адресах не являются хорошей идеей) или/foo/bar или/blah/blah/blah все перейдут на /index.php

Ваш Скрипт index.php может разделить элементы URL в массив для обработки, как вы хотите.

$req = array_map("urldecode", array_filter(explode('/', $_SERVER['REQUEST_URI']))); 

Если вы послали запрос/Bloop/бип/blorp линии PHP код выше будет поместить следующее в массив $ Req:

массива ('Bloop', 'бип', 'blorp «);

Или запрос как/услуги/logo_design/будет выглядеть следующим образом: массив ('услуги', logo_design)

Простой способ обработки этого массива будет:

if ($req[0] == 'services') { 
    if ($req[1] == 'logo_design') { include_once(services_logodesign.php); } 
    else { include_once(services.php); } 
} 

Посмотрите, как это работает ? Хотя это упрощенный пример того, что вы должны делать, это намного, намного лучше и безопаснее, чем то, как вы пытаетесь выполнить ту же задачу.

Смежные вопросы