Назад | Перейти на главную страницу

.htaccess RewriteEngine при сбоях CGI-приложения

Мой файл .htaccess находится в корневом каталоге моего веб-сайта, и я сузил проблему до одной строки кода. RewriteEngine on. Откуда мне знать, что это этот фрагмент кода? Потому что я удалил весь .htaccess файл за исключением RewriteEngine on в качестве теста ... и мое приложение CGI все равно сломалось.

Если кто-нибудь знает, почему RewriteEngine on line решает самостоятельно сломать приложение CGI. Я бы хотел это услышать!

PS - На всякий случай, если вам интересно, фрагмент кода, который я хочу заставить работать, должен помочь объединить все домены в один домен (разрывы строк сделаны просто для облегчения чтения):

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.html 
RewriteRule (.*) http://www.example.com/ [R=301,L]

Скорее всего, mod_rewrite в настоящее время не включен в вашей конфигурации Apache (обычно в httpd.conf).

Если он включен, это будет выглядеть примерно так:

# For Unix-like OSes
LoadModule rewrite_module modules/mod_rewrite.so

или

# For Windows
LoadModule rewrite_module modules/mod_rewrite.dll

так же как

# For both
AddModule mod_rewrite.c

В AddModule строка может не понадобиться в Apache 2.0 / 2.2.

Некоторые ОС помещают загрузчики модулей Apache в другой каталог. В Debian и Ubuntu Linux файлы конфигурации для установленных модулей находятся в / etc / apache2 / modules-available и могут быть активированы с помощью a2enmod modulename; в таком случае a2enmod rewrite.