Есть ли простой способ избежать создания всех папок - PullRequest
0 голосов
/ 15 апреля 2011

Хорошо, у меня есть этот сайт .... с URL

http://posnation.com/

и есть много страниц, для которых мне нужно сохранить структуру URL для .... как это

http://posnation.com/restaurant_pos
http://posnation.com/quickservice_pos
http://dev.posnation.com/retail_pos

вн ....

Проблема, с которой я столкнулся сейчас, заключается в том, что я хочу сохранить один и тот же URL для всех этих страниц, и я ищу лучший подход. Теперь он работает с кодом в miva, и мы покидаем miva .... Я знаю, что могу создать папку с именем restaurant_pos или любой другой URL-адрес и создать там index.php. Этот подход будет работать но проблема в том, что мне нужно сделать это для 600 различных страниц, и мне не хочется создавать 600 папок в лучшем подходе.

любые идеи

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Вы должны использовать .htaccess, чтобы направить все запросы в один файл, скажем, index.php и выполнить обслуживание оттуда на основании запрошенного URL.

Следующий файл .htaccess в корневом каталоге сервера будетперенаправьте все запросы в ваш index.php:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?route=$1 [L]
</IfModule>

Теперь вы должны проанализировать $ _REQUEST ['route'], чтобы определить, какой файл вы должны обслуживать.Вот пример, который будет обслуживать страницу, основанную на последнем элементе URL (например: pos):

<?php

$parts = explode($_REQUEST['route']);

if ($parts[count($parts) - 1] == 'pos') {
    include "pages/pos.php";
}

Определенно, вам нужно написать свою собственную логику, приведенный выше пример только для примера.

Надеюсь, это поможет.

1 голос
/ 15 апреля 2011

Обычно самый простой способ сделать это - создать файл .htaccess, который перенаправляет все запросы на /index.php. В /.index.php вы анализируете URL, используя, вероятно, $_SERVER['REQUEST_URI'] и включаете соответствующий контент.

Вот образец htaccess

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

В вашем /.index.php сделать что-то вроде ... (это просто ОЧЕНЬ простой пример)

require 'pages/' . $_SERVER['REQUEST_URI'] . '.php';

Теперь, если кто-то перейдет на http://posnation.com/restaurant_pos, будет включен pages/restaurant_pos.php.

pages/restaurant_pos.php может также включать верхний и нижний колонтитулы.

<?php require( HEADER_FILE ) ?>
restaurant_pos content
<?php require( FOOTER_FILE ) ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...