簡體   English   中英

同一目錄的多個 .htaccess 規則

[英]Multiple .htaccess rules for same directory

我是使用 .htaccess 文件的新手,我遇到了問題。 當我為同一個目錄(新聞)聲明多個規則時,它似乎只觸發了第一個規則。

在這種情況下,唯一有效的 RewriteRule 是 RewriteRule ^news news.php [NC,L]

但是,包含參數 id 和 title 的 ^news 的第二條規則不會觸發。

為新聞目錄聲明多個規則的正確方法是什么?

這是我的代碼:

RewriteEngine on


RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^news news.php [NC, L]



#RewriteCond %{REQUEST_FILENAME} !-d

#RewriteRule ^news/([0-9]+)/([0-9a-zA-Z_-]+) article.php?id=$1&title=$2 [NC,L]

這可能是您正在尋找的:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news$ news.php [NC,QSA,END]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^news/(\d+)/([\w-]+)$ article.php?id=$1&title=$2 [NC,QSA,END]

您嘗試的主要問題是您忘記在第一條規則中終止匹配模式... ^news將匹配以“news”開頭的任何字符串。 之后你什么都沒說。 為此,您需要將模式錨定到主題結尾: ^news$

是的,我希望服務器響應“它遇到的第一個匹配規則,然后停止查找”。

如您所見,“制定正確的規則”可能非常棘手。

暫無
暫無

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

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