nginx игнорирует директиву переписывания Apache - PullRequest
0 голосов
/ 11 мая 2011

Моя проблема такова: - Теперь я использую nginx перед сервером Apache, что означает все мои сайты - все переписки, которые у меня есть в файле .htaccess, работают отлично, кроме 1 и до сих пор никто не смог дать мне решение

Это правило .htaccess

 -------------
    RewriteCond %{THE_REQUEST} ^.*/index\.(html|htm)\ HTTP/
    RewriteRule ^(.*)index\.(html|htm)$ http://%{HTTP_HOST}/$1 [R=301,L]
 -------------

Это делает следующее: - он перенаправляет с 301 http-кодом с www.domain.com/index.html на www.domain.com - он принимает как index.html, так и index.htm

Теперь дело в том, что это работало до установки nginx и работает до сих пор для index.htm .. он перенаправляет правильно. Но index.htm не существует.

Я попробовал наоборот и обнаружил, что если файл существует, перенаправление не произойдет.

Еще одна странная вещь, которую я обнаружил, заключается в следующем: у меня также установлен mod_pagespeed из Google, и когда я получаю доступ к URL-адресу с www.domain.com/index.html ... тот, который НЕ переписывает в /, этот mod_pagespeed is ... inactive .. означает, что в источнике не происходит никаких изменений, например .... как этот URL не из тех же обычных запросов.

Кстати, в ssh, когда я запускаю команду nginx, я получаю следующее:

nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/nginx.conf:30
nginx: [emerg] bind() to 111.111.111.111:80 failed (98: Address already in use)
nginx: [emerg] bind() to 111.111.111.111:80 failed (98: Address already in use)
nginx: [emerg] bind() to 111.111.111.111:80 failed (98: Address already in use)
nginx: [emerg] bind() to 111.111.111.111:80 failed (98: Address already in use)
nginx: [emerg] bind() to 111.111.111.111:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

111.111.111.111 - поддельный ip

Я искал дубликат MIME .. не могу найти его там и все остальное в связке ... не ключ.

Если у вас, ребята, есть подсказка, я с удовольствием поделюсь с вами виртуальной кружкой пива, чтобы получить полезную информацию.

Спасибо

1 Ответ

0 голосов
/ 11 мая 2011

Это может помочь.

RewriteCond %{THE_REQUEST} ^.*/index\.(html|htm)\ HTTP/ [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)index\.(html|htm)$ http://%{HTTP_HOST}/$1 [R=301,L]
...