簡體   English   中英

使用 PHP 更改 .htaccess - 刪除重寫規則

[英]Altering .htaccess with PHP - removing a rewrite rule

一旦頁面被刪除,我正在使用 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

您必須通過將表達式分隔符作為第二個參數傳遞給preg_quote來對其進行preg_quote

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

否則你的 / 將不會被轉義。 如文檔中所述“特殊的正則表達式字符是:. \\ + * ? [ ^ ] $ ( ) { } = ! < > | :-”

像這樣使用

preg_replace(“~~msi”,“要替換的模式”)。 另外 - 好的做法是逐行分析 - 一次更改所有文本!!!

所以

foreach ( file(.htaccess) as $line)
{

並在每一行中替換,}

比輸出所有,存儲舊 .htaccess 的副本......

,阿森

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM