500 Внутренняя ошибка сервера при использовании .htaccess с RewriteEngine - PullRequest
27 голосов
/ 21 марта 2011

Я на общем хосте Bounceweb и пытаюсь добавить некоторые правила перезаписи, чтобы мои ссылки выглядели красивее.

Одним из этих правил является указание URL: http://mysite.com/upload на: http://mysite.com/upload.php. У меня есть это в моем файле .htaccess:

RewriteEngine on
RewriteRule ^upload$ upload.php

но все, что он мне дает, это 500 Internal Server Error. Я посмотрел на свои журналы, и это много всплывает:

[alert] [client 81.179.29.185] /home/minecraf/public_html/.htaccess: Invalid command '\xef\xbb\xbfRewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

Значит ли это, что мой хост не поддерживает .htaccess? Довольно глупо, если они этого не делают. Я уже пытался изменить разрешения .htaccess на 777, и это не помогает.

Спасибо!

Ответы [ 7 ]

45 голосов
/ 21 марта 2011

\xef\xbb\xbf - это три невидимых ненужных символа (по крайней мере, с точки зрения Apache), называемых спецификацией Unicode или меткой порядка байтов.Апач считает, что эти символы являются частью команды, которая следует сразу после.Это то, что вы видите в журнале, хотя символы экранированы, поэтому они видны невооруженным глазом.\xef\xbb\xbfRewriteEngine

В вашем редакторе, особенно если ваш редактор - «Блокнот», убедитесь, что вы сохраняете файл без спецификации.Это должно быть выбрано в диалоговом окне «Сохранить как» или в другом месте.

20 голосов
/ 14 сентября 2012

В некоторых случаях модуль mod_rewrite в apache не загружается. Проверьте настройки Apache.

Обновление:

Windows xampp : Открыть xampp/apache/conf/httpd.conf и раскомментировать модуль mod_rewrite.
Windows wamp : Откройте wamp/bin/apache/Apache2.x.x/conf/httpd.conf и раскомментируйте модуль mod_rewrite.
Ubuntu : введите в терминале: a2enmod rewrite
Руководство по Ubuntu : cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
А затем перезагрузите Apache
Ubuntu: service apache2 reload ИЛИ service apache2 restart
Windows: С панели управления xampp или wamp.

10 голосов
/ 04 апреля 2012

Попробуйте это:

a2enmod rewrite    
/etc/init.d/apache2 restart
6 голосов
/ 11 сентября 2015

Для удаления спецификации в unix используйте команду vi и ниже

: установить nobomb

: WQ

2 голосов
/ 10 августа 2013

У меня была эта проблема, и я решил ее с помощью:

sudo a2enmod rewrite
sudo service apache2 restart
0 голосов
/ 27 мая 2019

Просто сохраните файл .htaccess с кодировкой UTF-8 (без спецификации) и загрузите. Рекомендуется использовать Notepad ++. (в моем случае это помогло).

ATB

0 голосов
/ 21 марта 2011
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

rewriterule ^upload$ upload.php

</IfModule>

попробуйте это.

...