Цитата:
Сообщение от -=UncleByte=-
Так на самом деле вполне будет логично выглядеть url типа domain.tld/print/page/id/ - и совершенно точно он не будет отзываться ни на какие *.html
|
Судя по тому какое поведение я наблюдаю сейчас на последнем RealURL, то получиться что и в этом случае domain.tld/print/page/id/ и domain.tld/print/page/id.html будут показывать одно и тоже.
РЕШЕНИЕ!
Все оказалось просто, но не очевидно. В новой версии проверка наличия суффикса делается вот так:
PHP код:
protected function decodeSpURL_decodeFileName_checkHtmlSuffix($fileName, $segment, $extension, array &$pathParts) {
$handled = false;
if (isset($this->extConf['fileName']['defaultToHTMLsuffixOnPrev'])) {
$suffix = $this->extConf['fileName']['defaultToHTMLsuffixOnPrev'];
$suffix = (!$this->isString($suffix, 'defaultToHTMLsuffixOnPrev') ? '.html' : $suffix);
if ($suffix == '.' . $extension) {
$pathParts[] = rawurlencode($segment);
$this->filePart = '.' . $extension;
}
else {
$this->decodeSpURL_throw404('File "' . $fileName . '" was not found (2)!');
}
$handled = true;
}
return $handled;
}
Т.е. даже если defaultToHTMLsuffixOnPrev установлен в ноль в конфиге, то это означает что .html суффиксы будут приняты!
Причем этот конфиг предлагается по умолчанию как в примерах, так и в autoconf, вот кусок из class.tx_realurl_autoconfgen.php
PHP код:
'fileName' => array(
'defaultToHTMLsuffixOnPrev' => 0,
'acceptHTMLsuffix' => 1,
)
Поэтому, что бы суффиксы .html давали 404 ошибку, строку с defaultToHTMLsuffixOnPrev из конфига нужно убрать совсем!
PS: Скорее это просто баг, на это указывает то что при генерации этот параметр учитывается простой проверкой, а не isset()
PHP код:
elseif ($url != '') {
$suffix = $this->extConf['fileName']['defaultToHTMLsuffixOnPrev'];
if ($suffix) {