我们正在努力设置Drupal 8服务器,并且遇到了URL干净的问题。我们正在使用URL重写规则来处理干净的URL,但这会造成问题,因为某些D8 URL包含“。”。因此,例如,编辑内容类型的字段会在URL的末尾产生“ node.webform.body”。我们的网站正在读取该文件,然后抛出404错误。
我们需要以其他方式处理干净的URL,还是可以对重写规则进行更新?
我们正在运行:
Lighttpd 1.4.49
Drupal 8.5.6
我们的lighttpd.conf中包含以下内容:
url.rewrite-final = (
"^/web/system/test/(.*)$" => "/web/index.php?q=system/test/$1",
"^/web/([^.?]*)\?(.*)$" => "/web/index.php?q=$1&$2",
"^/web/([^.?]*)$" => "/web/index.php?q=$1",
"^/web/rss.xml" => "/web/index.php?q=rss.xml"
)
答案 0 :(得分:0)
这就是我们最终要做的事情: 我们在url.rewrite-final中添加了以下重写规则。这些照顾所有情况 到目前为止,我们已经发现了404个。
flavors <- c("Apple mango", "Apple", "Cherry", "Cranberry", "Cran raspberry")
flavor <- unique(stringr::str_replace_all(flavors, " ", ""))
min_length = min(nchar(flavor))
done = FALSE
prune <- function(fruits) {
longest <- which.max(nchar(fruits))
str <- fruits[longest]
matched <- FALSE
while(matched == FALSE && nchar(str) > min_length ) {
str <- gsub('.{1}$', '', str)
if(!(str %in% fruits[-longest])) {
fruits[longest] <- str
} else {
matched <- TRUE
}
}
return(fruits)
}
while(!done) {
new_flavor <- prune(flavor)
if(identical(new_flavor, flavor)) {
done <- TRUE
} else {
flavor <- new_flavor
}
}
> flavor
[1] "Applem" "Apple" "Cherry" "Cranb" "Cranr"
不过,我们担心会遇到更多的404,但这些规则未涵盖这些404。因此,如果有人对更好的解决方案有任何想法,请告诉我。