обслуживайте с apache все пути под доменом через один скрипт - PullRequest
2 голосов
/ 16 февраля 2009

Я размещаю веб-сайт через хостинговую компанию [1] на сервере Linux / Apache. до сих пор я обслуживаю разный контент через один скрипт с параметрами. URL-адрес примера

www.mydomain.com/pages.php?date=1-10-2008

Теперь я хочу изменить схему, из которой состоит URL, на что-то, что полностью похоже на URL пути. eg.:

www.mydomain.com/pages/date/2008/20/1

для этого мне нужно отключить нормальное отображение путей URL к папкам каталогов в apache: все запросы ко всем путям должны идти к одному центральному скрипту (pages.php), который затем анализирует путь компонент URL.

как мне настроить Apache для этого? Я надеюсь, что некоторые правила .htaccess могут помочь.

[1] кстати, хостинговой компанией является godaddy.com .

Ответы [ 3 ]

3 голосов
/ 16 февраля 2009

Что-то вроде:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} ! -f
RewriteCond %{REQUEST_FILENAME} ! -d
RewriteRule . pages.php

следует переписывать каждый запрос на файл или каталог, который не существует, на pages.php. Это позволит вам хранить статические файлы (изображения, таблицы стилей и т. Д.) В одном корне документа.

(бессовестно украденный из WordPress :))

1 голос
/ 16 февраля 2009

Вы ищете mod_rewrite . Пример файла htaccess:

RewriteEngine On
RewriteBase /
RewriteRule ^pages/([^/]*)/(.*)$ pages.php?$1=$2
0 голосов
/ 16 февраля 2009

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

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

Вы можете использовать их в файле .htaccess, при условии, что ваш хост позволяет это.

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