Отправить все входящие URL-запросы через 1 файл, получая параметры пути для PHP
Я хочу, чтобы большинство входящих URL-запросов указывали на глобальный файл процессора
**www.itsme.com/index.php**
URL могут иметь все виды структур, но всегда с "/" вместо "?|&|=", Например
- www.itsme.com/news/finance/
- www.itsme.com/news/money/trading
- www.itsme.com/sports
Index.php должен уметь распознавать URL и его параметры, из которых он был вызван, например
array{[1]=>news,[2]=>finance})
Так как у меня много каталогов, я хочу лучше избегать отдельного размещения в каждом файле (.htaccess) для перенаправления.
Apache / Linux / PHP 5.3
Как это могло быть сделано? THX
2 ответа
Решение
Так легко было. Поместив этот 1-лайнер в корень, как.htaccess сделает:
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+) index.php?var1=$1&var2=$2&var3=$3&var4=$4 [NC]
разве это не здорово?
Пусть Apache сделает всю работу за вас mod_rewrite
RewriteRule ^news/(.*)/$ /index.php?parts[]=news&parts[]=$1 [L]
RewriteRule ^news/(.*)/(.*)/$ /index.php?parts[]=news&parts[]=$1&parts[]=$2 [L]
RewriteRule ^sports/(.*)/$ /index.php?parts[]=sports&parts[]=$1 [L]