Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Вопрос по .htaccess и RewriteRule
Форумы портала PHP.SU » » Вопросы новичков » Вопрос по .htaccess и RewriteRule

Страниц (1): [1]
 

1. Kolya612 - 15 Декабря, 2011 - 13:17:02 - перейти к сообщению
Всем доброго времени суток.
Вот возник вопрос, подскажите пожалуйста...

Пишу правила RewriteRule для сайта. Но есть мысль, как зделатьчто бы в эти правила заносились данные из вне (из Базы Данных, переменной какой-нибудь в php).

К примеру есть:
RewriteRule ^contacts\.*$ contacts.php

нужно что бы в правиле contacts считывалось из БД. Это что бы в админке можно было менять вид отображаемого URL
2. OrmaJever - 15 Декабря, 2011 - 13:20:35 - перейти к сообщению
Ну зделайте генератор этих файлов в админке, достаёте из бд что нужно, затем формируете файл, и записываете file_put_contents(). В wordpress используют такую схему.
3. Kolya612 - 15 Декабря, 2011 - 13:28:19 - перейти к сообщению
ничего к сожалению не понял практически.

У меня собственно вопрос только --- как можно в конструкции
RewriteRule ^contacts\.*$ contacts.php
слово "contacts" заменить на имя какой-то переменной куда я и засажу текст из Базы Данных

что-то типа RewriteRule ^{тут переменная считанная из БД}\.*$ contacts.php

Ищу в мануалах по Модуль mod_rewrite, но что-то пока безуспешно, хотя твердо знаю что как-то это уже делали люди
4. snikers987 - 15 Декабря, 2011 - 13:42:47 - перейти к сообщению
Получай содержимое файла, file_get_contents() регуляркой проводи замену и записывай обратно в фаил file_put_contents
PHP:
скопировать код в буфер обмена
  1.  
  2. $str = file_get_contents('.htaccess');
  3. $str = str_replace('contacts', 'new_value', $str); // если нужно сложный шаблон то preg_replace()
  4. file_put_contents('.htaccess', $str);
  5.  
  6.  
5. Kolya612 - 15 Декабря, 2011 - 13:46:35 - перейти к сообщению
не вижу связи с моим вопросом.
как это поможет внести желаемое в RewriteRule ^contacts\.*$ contacts.php???

подскажите подробнее, так как ничего не понятно.
Зачем мне сейчас вообще Функции для работы с файловой системой???
6. snikers987 - 15 Декабря, 2011 - 13:52:20 - перейти к сообщению
Раз не видите, то ни чем помочь не могу.
Если вы расчитываете что .htaccess будет интерпретироватся как php фаил, то вы ошибаетесь.
Вы можете сгенерировать правила php скриптом и занести их в фаил, для этого и нужны функции файловой системы, по другому никак, .htaccess фаил конфигурации, а не программа.
7. Kolya612 - 15 Декабря, 2011 - 14:16:18 - перейти к сообщению
snikers987 пишет:
Если вы расчитываете что .htaccess будет интерпретироватся как php фаил, то вы ошибаетесь.
Вы можете сгенерировать правила php скриптом и занести их в фаил, для этого и нужны функции файловой системы, по другому никак, .htaccess фаил конфигурации, а не программа.

Вы правы, но... в .htaccess как-то можно считать переменные окружения, а туда соответственно внести что-то из РНР...
Но как??? вот в этом и мой вопрос... и какие именно переменные использовать можно?
8. caballero - 15 Декабря, 2011 - 14:38:08 - перейти к сообщению
Цитата:
Но как??? вот в этом и мой вопрос... и какие именно переменные использовать можно?

тебе ж пытаются втолковать - генеришь .htaccess и перезаписываешь

можно взять так сказать "рыбу" и реплейсом или регулярками заменять переменные. Можно просто генерить весь файл с нуля - это просто текстовый файл.

Хотя как по мне лучше все запросы передавать на index.php а там уже по человечески обрабатывать средствами PHP и выполнять редирект
9. Kolya612 - 15 Декабря, 2011 - 14:51:27 - перейти к сообщению
аааа понял, спасибо
тугодум блин.
Мне собственно идея нужна была, а как сгенерить разберемся.

 

Powered by ExBB FM 1.0 RC1