簡體   English   中英

RewriteRule:錯誤的標志分隔符

[英]RewriteRule: bad flag delimiters

這是我的.htaccess文件:

ErrorDocument 404 /index.php?cmd=notfound
# Maintenance
RewriteCond %{REMOTE_ADDR} !^(Redacted)
RewriteRule ^ maintenance.php [L]

RewriteEngine On 
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-l
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\w+)(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?(?:/(\w+))?/?$ route.php?1=$1&2=$2&3=$3&4=$4&5=$5&6=$6 [L]

它可以正常工作,沒有錯誤,但是存在一個問題:最后一個RewriteRule不允許在參數中使用空格。

有人告訴我用[\\w ]+替換\\w+ [\\w ]+ ,但是當我這樣做時,我得到一個錯誤:

RewriteRule: bad flag delimiters

Zapk,聽起來好像HamZa已經告訴您了解決方案:是的, \\s將匹配空格(就像大多數正則表達式一樣)。

對於完成,這是一個鮮為人知的事實:Apache使用PCRE進行正則表達式匹配。 這對於Web管理員來說是個好消息,因為PCRE是周圍功能最強大的引擎之一。 因此,除了在Internet上浮動的Apache重定向的常見丑陋示例之外,您還可以做很多事情。

首先,我必須說,很高興看到您在正則表達式中使用了未轉義的正斜杠,而網絡上的許多示例都給不必要的\\/\\/增添了很多湯水,這也是一種享受您正在使用非捕獲組。

暫無
暫無

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

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