.htaccess не перенаправляет к www-снабженной-префиксом странице правильно

Вы получили бы "Доступ запрещен" при внесении изменений в системной папке из-за контроля учётных записей. В Windows Server 2008 даже при том, что Вы - член Группы администраторов на машине, когда Вы пытаетесь внести любые изменения в папке как inetpub или system32 огни контроля учётных записей в и проверяете подтверждение изменения.

Это настоятельно рекомендовано для не внесения изменений в контроль учётных записей, но можно проверить настройки под Панелью управления-> Учетные записи пользователей-> Учетные записи пользователей. Выберите учетную запись и нажмите на настройки Change User Account Control.

HTH

9
задан 3 February 2015 в 20:45
11 ответов

In addition to enabling rewritelog (if you have access to change the httpd.conf) you should remove the application that lives on this site from the equation. Remove/rename temporarily the default index.php (or whatever index page is serving your app) to be sure it's not causing this.

There are many reports of applications (e.g. wordpress) causing these apache default redirect page to appear if they are misconfigured.

Also, check the rest of the apache config to see if there are any other 'redirect' instructions that might be conflicting.

1
ответ дан 2 December 2019 в 22:37

Что мне кажется странным, так это строка заголовка Location: http://domain.cz/, сообщаемая CURL. Вы никогда не перенаправляете на этот домен. Журнал перенаправления также не содержит никаких упоминаний об этом.

Почему-то заголовок Location , кажется, изменился после того, как modrewrite сделал свое дело, и, поскольку вы также пытались изменить заголовок с помощью PHP, Заголовок местоположения очевидно изменяется после обработки запроса. Единственное объяснение, которое я могу придумать, это то, что вы где-то изменяете заголовок местоположения с помощью mod_header.

Вы проверили все файлы конфигурации (httpd.conf, включенные файлы .conf и файл .htaccess), если вы где-то нашли строка, аналогичная этой:

Header set Location (...)

или

Header edit Location (...)
2
ответ дан 2 December 2019 в 22:37

Can you try this alternative mod_rewrite code:

RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
0
ответ дан 2 December 2019 в 22:37

Не могли бы вы попробовать использовать [NC] вместо [NC], может быть так просто

0
ответ дан 2 December 2019 в 22:37

Попробуйте:

RewriteCond %{HTTP_HOST} ^domain.cz [NC]
RewriteRule (.*) http://www.domain.cz/$1 [R=301,L]
0
ответ дан 2 December 2019 в 22:37

Надеюсь, у вас есть доступ к серверу, Добавлена ​​строка перенаправления после указанной папки с документами сайта

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain\.cz [NC]
RewriteRule ^/(.*) http://www.domain.cz/$1 [L,R=301]

Если у вас нет доступа к серверу, добавьте эту строку в httaccess, начиная / измените часть.

Возможно, вы не добавляли «RewriteEngine on» перед перенаправлением.

0
ответ дан 2 December 2019 в 22:37

Убедитесь, что у вас есть Параметры + FollowSymLinks , если вы работаете в контексте каталога.

В противном случае, если вы используете виртуальные хосты на основе имен, попробуйте:

<VirtualHost *:80>
  ServerName domain.cz
  Redirect / http://www.domain.cz/
</VirtualHost>

<VirtualHost *:80>
  ServerName www.domain.cz
  # whatever else
</VirtualHost>
0
ответ дан 2 December 2019 в 22:37

После прочтения всех ответов вы можете проверить файл de / etc / hosts ... возможно, все ваши проверки сделаны с вашего компьютера . Попробуйте получить доступ из другого места.

0
ответ дан 2 December 2019 в 22:37

I have a second idea. The server log you posted shows an adress of "192.168.1.221", which is an adress from the local network. Do all log entries show the same IP adress? If this is the case, there is a proxy between you and the server. This proxy probably uses ProxyPassReverse or Header edit to change the Location header.

This is a usual setup to circumvent the problem when the backend server puts its own hostname into the Location header, rather than the hostname of the external proxy server.

If there really is a proxy server, you will have to change the configuration of the proxy server rather than the configuration of the backend server, as the proxy will always overwrite the information.

This means that all the time we have been looking at the wrong server: The problem is with the proxy server!

0
ответ дан 2 December 2019 в 22:37

В файле .htaccess могут быть непечатаемые символы, такие как null.

hexdump -C .htaccess
0
ответ дан 2 December 2019 в 22:37

Я полагаю, у вас отсутствует знак $ после условия перезаписи. Попробуйте:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^domain.cz$
RewriteRule ^(.*)$ http://www.domain.cz/$1 [R=301,L]
0
ответ дан 2 December 2019 в 22:37

Теги

Похожие вопросы