Принудительно использовать www для серверной части TYPO3

.Htaccess для сайта TYPO3 6.2 имеет эти два блока перезаписи URL (среди прочего)

# Regular TYPO3 / RealURL rewrites
RewriteEngine On
RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule .* index.php

# force www for frontend to avoid duplicate content
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]

Как я могу принудительно использовать www для бэкэнда (/typo3, /typo3/, typo3/index.php)?

Я пробовал такие вещи, как RewriteRule ^typo3(.*)?$ http://www.%{HTTP_HOST}/typo3/$1 [R=301,L], но получал только ошибки.

  • Причина, по которой я хочу это сделать: в RTE есть ошибки JS, которые приводят к снижению функциональности (невозможно создавать ссылки).
  • Причина этих ошибок: междоменная политика.
  • И причина этого: приведенное выше правило «предотвращения дублирования содержимого» - как ни странно, перезапись не останавливается на ^typo3$.

Так что, может быть, мне даже не нужно форсировать www, но я поясню, почему переписывание не останавливается там, где должно.

Не уверен, связано ли это: https://forge.typo3.org/issues/65705


person Urs    schedule 27.03.2015    source источник


Ответы (1)


Измените порядок правил следующим образом:

# Regular TYPO3 / RealURL rewrites
RewriteEngine On

# force www for frontend to avoid duplicate content
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE]

RewriteRule ^typo3(/.*)?$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^ index.php [L]
person anubhava    schedule 27.03.2015