Изменение .htaccess с PHP - удаление правила перезаписи - PullRequest
3 голосов
/ 08 мая 2011

Привет, ребята, небольшой вопрос.

Я использую PHP для удаления / добавления статических страниц после удаления страницы, я хочу иметь возможность удалить ее из .htaccess, однако я 'мы пробовали это, но выдает ошибку:

Предупреждение : preg_replace () [function.preg-replace]: неизвестный модификатор '\' in ...

Код:

$page_name = $row['page_name']; // Example:  help

preg_replace('/RewriteRule ' . preg_quote('^' . $page_name . '/?$ page.php?mode=') . '.*/i', '', $htaccess);

Это пример того, что он должен полностью удалить:

RewriteRule ^help/?$ page.php?mode=help

Ответы [ 2 ]

2 голосов
/ 08 мая 2011

Вы должны выйти из разделителя выражения, передав его в preg_quote в качестве второго аргумента.

preg_replace('/RewriteRule ' . preg_quote('^' . $page_name . '/?$ page.php?mode=', '/') . '.*/i', '', $htaccess);

Или иначе ваш / не сбежит. Как указано в документации "специальные символы регулярного выражения:. \ + *? [^] $ () {} =! <> |: -"

0 голосов
/ 08 мая 2011

ИСПОЛЬЗУЙТЕ вот так

preg_replace ("~~ msi", "pattern to replace").Кроме того - хорошая практика - анализ по строке, а не - изменение во всем тексте за раз !!!

, поэтому

foreach (файл (.htaccess) как $ line)
{

и замените в каждой строке,}

чем выводить все, сохраните копию старого .htaccess ...

, Арсен

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