2014-01-22 1 views
-2

В настоящее время я создаю веб-сайт, который я хотел бы запустить в будущем. Я уже много строил и имею около 40 страниц. Сайт в настоящее время работает как это, если вы идете в другой ссылке:Многие страницы обрабатываются одним файлом PHP и многими файлами PHP

/index.php

нажмите на ссылку, чтобы члены

/members.php

я, однако, может также сделать место вся логика в моем index.php:

/index.php

нажмите на ссылку для членов

/index.php?action=members

Моего вопроса, однако есть то, что является преимуществом такого подхода, когда многие страницы обслуживаются однократный Scrypt? Что я получу? Стоит ли переписывать мой сайт?

+0

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

+0

Я вижу, так что это полезно, когда вы хотите взглянуть на свой код и не нуждаетесь в изменении шаблона/верхних колонтитулов. Будет ли также легче изменить стиль сайта, если я добавлю возможность изменять стили? Между прочим, почему каждый человек отрицает мой вопрос? – Blogger

+0

Да, если правильно использовать, очевидно, что-либо, что может быть плохо реализовано, но если вы используете право, вы можете сделать весь ваш проект более разумным и в глубине души, как все фреймворки работают с их симпатичным URL-адресом, всегда есть основной файл index.php, который затем загружает включены методы/представления и т. д., основанные на запрошенном довольно url – Dave

ответ

2

Я думаю, что вы имеете в виду статический контент и динамический контент.

Если вы используете URL-адреса с строкой запроса, то есть http://domain.com/index.php?site=foo, разработчик обычно создает статический кадр вокруг динамического содержимого. Это означает, что такие вещи, как заголовок HTML, логотип, навигация, нижний колонтитул и другие вещи, являются статическими, и ему не нужно хранить эту информацию в каждом файле. Содержимое затем загружается из разных файлов, которые просто должны содержать контент.

Один отрицательный сайт, или, по крайней мере, многие люди так думают, что ваши URL-адреса выглядят не так красиво и не так хорошо читаются людьми и поисковыми пауками. Методом наложения статических URL-адресов на динамические URL-адреса является использование mod_rewrite и файла .htaccess. Вы можете сказать веб-серверу, что определенные местоположения из вашего URL-адреса эквивалентны URL-адресу с строкой запроса. Например, http://domain.com/list/ является эквивалентом http://domain.com/index.php?site=list.

Динамический контент легко достигается, как здесь. Вы можете инициировать загрузку динамического содержимого, используя URL-адрес с строкой запроса, например. http://domain.com/index.php?site=list.

<!doctype html> 
<head> 
<!-- html header --> 
</head> 
<body> 
<div id="navigation> 
<!-- your navigation --> 
</div> 
<div id="content"> 
<?php 
switch($_GET['site']) 
{ 
    case "list": 
     // serve list content 
     include("list.php"); 
     break; 

    default: 
     // server default content 
     include("home.php"); 
     break; 
} 
?> 
</div> 
<div id="footer"> 
<!-- your footer --> 
</div> 
</body> 
</html> 

switch() функция делает Prope для значения $_GET['site'] и служит содержание, основанное на матче случаев.

Пример файла .htaccess можно найти здесь, в котором используются URL-адреса без завершающих слэшей: (вам просто нужно убедиться, что mod_rewrite активен для вашего Apache (a2enmod rewrite @ linux) или вашего аналогичного веб-сервера. пишут, что в файл конфигурации ВХост.)

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/

    RewriteCond %{REQUEST_URI} (.*)[/\?]$ 
     RewriteRule ^(.*)[/\?]$ $1 [L,R=301] 

    RewriteCond %{REQUEST_URI} !(.*)/$ 
     RewriteRule ^([^\./]+)/([^\./]+)/([^\./]+)/([^\./]+)$ index.php?section=$1&sub=$2&sub2=$3&sub3=$4 [L] 
     RewriteRule ^([^\./]+)/([^\./]+)/([^\./]+)$ index.php?section=$1&sub=$2&sub2=$3 [L] 
     RewriteRule ^([^\./]+)/([^\./]+)$ index.php?section=$1&sub=$2 [L] 
     RewriteRule ^([^\./]+)$ index.php?section=$1 [L] 
</IfModule> 
+0

Я вижу, поэтому преимущество заключается не в том, чтобы включать нижний колонтитул, заголовок, логотип и т. д. снова в каждый файл? – Blogger

+0

yep, это большое преимущество –

+0

Итак, если вы используете mod_rewrite, вам не нужно переписывать все свои страницы, но можете сказать, что код автоматически записывает его, как index.php? Site = – Blogger

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