Динамический файл .htaccess в PHP - PullRequest
0 голосов
/ 18 августа 2011

Как часть проекта, в настоящее время мы рассматриваем возможность добавления SEO-ссылок на страницы. Это для интернет-магазина, и на сайте существует множество типов контента: статические страницы (например, «О нас», «Политика конфиденциальности», категории продуктов и страницы продуктов.

У нас есть многочисленные заглушки URL, которые хранятся в таблице MySQL следующим образом:

+-----------------+------------------+----------------+
|    url_stub     | destination type | destination_id |
+-----------------+------------------+----------------+
| privacy-policy/ |       page       |       1        |
+-----------------+------------------+----------------+
|   category-1/   |     category     |       2        |
+-----------------+------------------+----------------+
|  my-product-1/  |      product     |       1        |
+-----------------+------------------+----------------+

Один из способов справиться с этим - иметь огромный файл index.php, способный обрабатывать все, однако мы бы предпочли иметь отдельные страницы для обслуживания разных типов контента. Например, что-нибудь с destination_type из page будет идти к page.php? Id = # и так далее. Так, для примеров в таблице выше, они будут направлены следующим образом:

privacy-policy/ = page.php?id=1
category-1/     = category.php?cat=2
my-product-1/   = product.php?prod=1

Мой вопрос таков: что было бы наилучшей практикой для достижения этой цели? Мы не хотим включать destination_id где-либо в SEO-дружественный URL. Я думал, что возможно создать динамический файл .htaccess, который выводит все на лету с помощью mod_rewrite, но я не могу найти никаких решений.

Любая помощь или комментарии будут приняты с благодарностью.

1 Ответ

1 голос
/ 18 августа 2011

Короткий ответ будет: «Нет, вы должны переписывать его каждый раз», но этот старый вопрос должен отвечать на ваш :) Могу ли я создать динамический файл .htaccess?

В противном случае, сложный/ тупая / бесполезная идея:

RewriteRule /(.*)  /index.php?url=$1

Тогда в вашем PHP-файле

if (isset($_GET['url']))
{
  //Parse url and echo page according to requested url
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...