Предварительное подтверждение URL с произвольным количеством «подкаталогов» - PullRequest
0 голосов
/ 05 января 2011

Я работаю над своим первым сайтом, который живет поверх стека PHP / Apache.

Мой сайт имеет логическое меню, структурированное так:

+AAA Entry
  -AAB Entry
    -AABA Subentry
    -AABB Subentry
  -AAC Entry
    -AACA Subentry
      -AACAA Subentry
      -AACAB Subentry
    -AACB Subentry
  -AAD Entry

+BBB Entry
  -BBC Entry
    -BBCA Subentry
    etc.
+CCC Entry
+DDD Entry

Моя цель -чтобы иметь действительные URL, подобные этим:

http://www.mydomain.com/aaa/aab/aaba
http://www.mydomain.com/aaa/aac/aaca/aacaa
http://www.mydomain.com/aaa/aac/aacb
http://www.mydomain.com/aaa/aad

http://www.mydomain.com/bbb
http://www.mydomain.com/bbb/bbc
http://www.mydomain.com/bbb/bbc/bbca

http://www.mydomain.com/ccc

Я читал о mod_rewrite RewriteRule и RewriteCond, но я не уверен относительно того, какой метод использовать в терминахремонтопригодность.Что, если я решу добавить, например, еще один уровень к AACAA?Придется ли мне возиться с mod_rewrite снова и снова?

Уместнее ли перенаправлять все на index.php и анализировать REQUEST_URI вручную?Как это делают профессионалы?

1 Ответ

1 голос
/ 05 января 2011

Гораздо проще переслать все URL в скрипт вашего контроллера и выполнить маршрутизацию на PHP:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* my_script.php [L]

Направляет все запросы на файлы, которые не существуют, через my_script.php. Оттуда вы можете просмотреть URI запроса, разбить его на сегменты, разделенные прямой косой чертой, и направить к нужному файлу.

...