Rewriteengine on ошибка 500

I am on the shared host Bounceweb and I am trying to add some rewrite rules to make my links look prettier.

One of these rules is to make the url: http://mysite.com/upload point to: http://mysite.com/upload.php. I have this in my .htaccess file:

RewriteEngine on
RewriteRule ^upload$ upload.php

but all it’s giving me is a 500 Internal Server Error. I looked at my logs and this comes up a lot:

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

Does this mean my host doesn’t support .htaccess? Pretty lame if they don’t. I’ve already tried changing the permissions of .htaccess to 777 and it doesn’t help.

Thanks!

asked Mar 21, 2011 at 2:46

Josh's user avatar

xefxbbxbf are three invisible junk characters (at least from Apache’s perspective) called the Unicode BOM, or byte order mark. Apache thinks that those characters are part of the command that follows right after. This is what you see in the log, though the characters are escaped so they’re visible to the naked eye. xefxbbxbfRewriteEngine

In your editor, especially if your editor is Notepad, make sure you’re saving your file without a BOM. This should be selectable in the save as dialog or elsewhere.

answered Mar 21, 2011 at 2:55

nitro2k01's user avatar

nitro2k01nitro2k01

7,6174 gold badges25 silver badges29 bronze badges

2

It might be the mod_rewrite module is not loaded.

Windows xampp : Open xampp/apache/conf/httpd.conf and uncomment mod_rewrite module.
Windows wamp : Open wamp/bin/apache/Apache2.x.x/conf/httpd.conf and uncomment mod_rewrite module.
Ubuntu : a2enmod rewrite && service apache2 restart
or cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load

Then reload apache

answered Sep 14, 2012 at 17:09

M Rostami's user avatar

M RostamiM Rostami

4,0151 gold badge35 silver badges39 bronze badges

To remove the BOM in unix use vi and below command

: set nobomb

: wq

answered Sep 11, 2015 at 15:44

ap2's user avatar

ap2ap2

1111 silver badge3 bronze badges

Try this:

a2enmod rewrite    
/etc/init.d/apache2 restart

Ben's user avatar

Ben

51.5k36 gold badges127 silver badges148 bronze badges

answered Apr 4, 2012 at 13:40

hemstar7's user avatar

hemstar7hemstar7

1011 silver badge2 bronze badges

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

rewriterule ^upload$ upload.php

</IfModule>

try this.

answered Mar 21, 2011 at 2:50

Sujit Agarwal's user avatar

Sujit AgarwalSujit Agarwal

12.3k11 gold badges48 silver badges79 bronze badges

1

I had this problem and solved it with:

sudo a2enmod rewrite
sudo service apache2 restart

CoderGuy123's user avatar

CoderGuy123

6,1995 gold badges58 silver badges87 bronze badges

answered Aug 10, 2013 at 11:19

Mohamad Khani's user avatar

Just save your .htaccess file with UTF-8 encoding (without BOM) and upload.
Recommended to use Notepad++. (in my case that helped).

atb

answered May 27, 2019 at 9:52

Borya from GTranslate's user avatar

0

#статьи

  • 29 мар 2023

  • 0

Её просто найти, трудно исправить и невозможно забыть: кто эта таинственная мошенница, из-за которой компании теряли миллионы денег.

Иллюстрация: Оля Ежак для Skillbox Media

Дмитрий Зверев

Любитель научной фантастики и технологического прогресса. Хорошо сочетает в себе заумного технаря и утончённого гуманитария. Пишет про IT и радуется этому.

Среди всех HTTP-ошибок пятисотая самая опасная — ведь никто до конца не понимает, что её вызвало. Само число 500 говорит о том, что проблема возникла на стороне сервера, но вот что именно произошло — непонятно.

У неё лаконичное описание: Internal Server Error, что означает «внутренняя ошибка сервера». Никаких подробностей и намёков на решение. Но давайте не будем унывать и постараемся разобраться, как она возникает, что означает и какими методами её можно попытаться исправить.

Ошибка 500 (Internal Server Error) — это когда сайт упал и пока его никто не смог поднять. Вообще, все ошибки, коды которых начинаются с пятёрки, указывают на вину разработчиков.

Когда возникает ошибка 500, сервер перестаёт обрабатывать запросы пользователей, продолжая при этом бодро работать и рапортовать о своих успехах. А вот пользователи в этот момент почему-то получают сообщение об ошибке. Это приводит к бесконечной попытке браузера загрузить страницу. В общем, дедовский метод с перезагрузкой тут не пройдёт.

Ошибка 500 — Internal Server Error, что в переводе означает «внутренняя ошибка сервера», а значит, решить её могут только администраторы и разработчики сайта. Но проблема в том, что она — уникальная. Сервер выдаёт её, когда остальные коды не подошли, и получается, что проблема действительно серьёзная. Решить такую проблему — всё равно что победить на городской олимпиаде по русскому языку «Русский медвежонок».

Сообщение о подобной ошибке может выглядеть так:

Это может быть просто текст с большой надписью: «Внутренняя ошибка сервера»
Скриншот: Skillbox Media

А может быть ещё и картинка впридачу
Скриншот: Skillbox Media

А в виде ответа на HTTP-запрос сообщение выглядит вот так:

HTTP/1.1 500 Internal Server Error
Date: Tue, 14 Feb 2023 15:30:00 GMT
Server: Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30
Content-Length: 462
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE html>
<html>
<head>
	<title>500 Internal Server Error</title>
</head>
<body>
	<h1>500 Internal Server Error</h1>
	<p>The server encountered an internal error or misconfiguration and was unable to complete your request.</p>
	<p>Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error.</p>
	<p>More information about this error may be available in the server error log.</p>
</body>
</html>

Здесь мы запрашиваем страницу по HTTP, а сервер возвращает примерно такое сообщение об ошибке: «Внутри сервера что-то не так, и он не может обработать запрос пользователя».

Само сообщение содержит информацию о том, что сайт не работает из-за внутренней ошибки на сервере. То есть проблема не в браузере, не на стороне пользователя, а именно на сервере: «The server encountered an internal error or misconfiguration and was unable to complete your request».

А ещё в описании есть небольшой совет пользователю, как исправить проблему (никак): «Please contact the server administrator to inform of the time the error occurred and of anything you might have done that may have caused the error». Мы не знаем ни одного человека, который бы таким советом воспользовался 🙂 Разве что вы сами — тот самый пресловутый администратор, да к тому же любитель рекурсии.

Ошибка 500 может ухудшить SEO и продвижение сайта в поисковике. Она приводит к тому, что поисковые роботы не смогут полностью проиндексировать сайт, потому что не получат доступ к некоторым страницам.

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

Но важнее всего вот что: когда пользователи сталкиваются с такой проблемой, они закрывают ваш сайт и уходят на страницы конкурентов. Растёт показатель отказов. А поисковые системы учитывают поведенческие факторы при ранжировании сайтов.

Итог очевиден — если вы заметили, что на вашем сайте часто возникает ошибка 500, стоит немедленно её исправить. Это поможет сохранить репутацию сайта и позиции в поисковых системах.

Ошибка 500 может возникнуть когда угодно, но чаще всего это происходит, когда на сайте проводятся технические работы — например, разработчики меняют конфигурацию сервера или он вовсе вышел из строя.

Фото: Med Photo Studio / Shutterstock

Причины возникновения чаще всего включают в себя следующее:

  • Проблемы на сервере. Например, неправильный синтаксис, неправильная настройка сервера или проблемы с базой данных.
  • Проблемы с файлами сайта. Это могут быть те же проблемы с синтаксисом, неправильное размещение файлов или неправильное использование функций.
  • Проблемы с соединением. Например, неполадки в сети, медленное или нестабильное соединение, проблемы с DNS.

Если на сайте возникла ошибка 500, вы, как пользователь, это заметите не мгновенно — для этого вам придётся отправить на сайт какой-то запрос, например обновить страницу или заполнить какую-то форму (ведь чаще всего мы просматриваем уже закэшированные страницы). Тогда-то браузер попытается вступить в диалог с сервером и выдаст Internal Server Error.

Чтобы узнать больше о возникшей проблеме, для начала проверьте журналы ошибок на сервере. Для этого можно использовать SSH, FTP или панель управления хостингом.

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

Вот пример лога с ошибкой 500:

[Sun Jan 05 15:33:31.122031 2020] [core:error] [pid 3987] [client 192.168.1.5:58427] End of script output before headers: index.php

В этом примере лог сообщает, что при обработке запроса на получение страницы index.php произошла ошибка. Сервер не смог правильно обработать скрипт и вывести заголовки страницы, что привело к Internal Server Error. Для определения точной причины придётся провести дополнительный анализ.

Ещё одна распространённая причина — повреждения в файле .htaccess, где хранятся настройки сервера: управление доступом для пользователей, кэширование и редиректы. Повредить его можно, просто неправильно написав команду:

RewriteEngine on.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

Проблема в первой строке — точка там лишняя. И эта мелочь вполне может вызвать ошибку 500. При этом обнаружить такую деталь будет очень непросто, потому что она практически незаметна.

Кроме логов можно использовать другие инструменты — например, инспектор браузера или специализированные программы для анализа логов. Ряд CMS вроде WordPress или Drupal могут также указать на причины проблемы благодаря встроенным инструментам. Дело в том, что у каждой CMS есть собственная система мониторинга таких проблем. Вот пример сообщения в WordPress:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Как правило, CMS предоставляют очень ограниченную информацию о причинах, поэтому лучше всё-таки изучать логи.

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

  • Перезагрузить страницу. Иногда ошибка возникает из-за временной нагрузки на сервер, а перезагрузка страницы может решить проблему.
  • Проверить соединение. Убедитесь, что ваше интернет-соединение работает стабильно.

Чтобы исправить ошибку на стороне сервера, нужно приложить больше усилий. Вероятно, придётся использовать средства отладки и тестирования кода. Ниже представлены несколько шагов, которые помогут вам найти и исправить ситуацию:

  • Проверьте логи сервера. Это позволит определить, что вызывает ошибку и где это происходит.
  • Проверьте базу данных. Убедитесь, что база данных работает корректно.
  • Проверьте код на наличие ошибок. Проблема может возникнуть из-за опечаток, ошибок синтаксиса, неправильных путей к файлам и неправильных конфигураций.
  • Измените настройки сервера. Попробуйте поменять разные конфигурации и посмотреть, к чему это приведёт.
  • Проверьте файл .htaccess. Убедитесь, что в нём нет ошибок, таких как неправильная настройка редиректов, блокировка IP-адресов или неправильное форматирование.
  • Проверьте сторонние плагины и расширения. Иногда проблема может возникнуть из-за их неправильной работы. Проверьте, что все они работают корректно.
  • Проверьте файлы сервера. В них тоже могут быть ошибки или неправильные настройки.
  • Попробуйте переустановить CMS или рабочее окружение. К этому имеет смысл прибегать, если все другие способы не сработали. Но это уж совсем радикальный совет — лучше обратитесь к кому-то более опытному, наверняка он поможет.
  • Если же не помогло даже это, пора писать три письма и бросать программирование (конечно, чтобы открыть свою кофейню).

Борьба может затянуться надолго — ведь главная причина часто бывает непредсказуема, неочевидна и весьма коварна.

Важные факты об ошибке 500 (Internal Server Error), которые стоит запомнить:

  • Ошибка 500 (Internal Server Error) — это сообщение о проблеме, которое может появиться при попытке получить доступ к веб-странице.
  • Она может возникнуть по разным причинам — например, из-за проблем на стороне сервера, неправильных настроек сайта или ошибок в коде.
  • Для того чтобы исправить проблему, нужно определить её причину. Обратитесь к логам сервера или к специалистам по веб-разработке.
  • Она негативно влияет на SEO-продвижение сайта. Поэтому исправляйте её сразу же.
  • Обновляйте ПО и проверяйте код на ошибки — это лучший способ держать сайт в хорошем техническом состоянии.

Научитесь: Профессия Веб-разработчик
Узнать больше

This is one solution that solved the issue for me. Rewrite module was always enabled, used in IfModule rewrite_module, permissions were granted and .htaccess contents were fine, yet it still was 500 error trying to use rewrite module.

In httpd.conf by default:

This is a source of a 500 error if you try to use rewrite in .htaccess in some sub directory.

` 
# Deny access to the entirety of your server's filesystem. You must
# explicitly permit access to web content directories in other 
# <Directory> blocks below.
#

    <Directory />
        AllowOverride none
        Require all denied
    </Directory>
`    

So one may want to use .htaccess with rewrite module in a specific directory. You would add a <directory> block for that directory. If one copies and pastes the directory block, you need to make sure the intent of the block you copy is correct for the directory you want to apply it to.

So for my intent this block, causes a 403 error, but does get rid of the 500 error.

<Directory "c:/Apache24/htdocs/store">
    AllowOverride All
    Options None
    Require all granted
</Directory>


Changing to this solved the issue:

<Directory "c:/Apache24/htdocs/store">
    AllowOverride All
    Require all granted
</Directory>

I suppose this is why the issue is commonly seen, but rarely solved in these threads. If I simply copied a different block, typed my own block, or had any understanding of what I was doing, this wouldn’t have been an issue.

I can’t say this solves everybody’s issue, but I hate when people solve-and-run w/o enlightening the rest of us. So for those that did my mistake, this is the answer.

вот мой .htaccess

DirectoryIndex index.php


RewriteEngine On

# Optimize deflate
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

# Options +FollowSymLinks


# Accses in folder
Options All -Indexes


# Loading Errors
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 500 /error/500.php
# Optimize deflate - немного ускоряем работу скрипта.
# Accses in folder - Запрещаем вывод каталога папок, как я видел у некоторых доступно по адресу http://mysiti.com/templates/Default/ - каталог как на ладони.
# Loading Errors - выводим собственно свою ошибку..

# Виджеты
    RewriteRule ^dev/widget_comm(/?)+$ index.php?go=dev_wid&act=widget_comm [L]

# Отключаем вывод ошибок пользователям
	php_flag display_errors off



	
#robots.txt
    RewriteCond %{HTTP_USER_AGENT} !^yandex.* [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^googlebot.* [NC,OR]
    RewriteCond %{HTTP_USER_AGENT} !^rambler.* [NC,OR]
    RewriteRule ^robots.txt$ / [L,R]	

# Регистрация
	RewriteRule ^reg/(/?)+$ index.php?go=register [L]
	
# Отзывы
	RewriteRule ^reviews(/?)+$ index.php?go=reviews [L]
	
# Apps
	RewriteRule ^apps(/?)+$ index.php?go=apps [L]
	RewriteRule ^app([0-9]+)(/?)$ index.php?go=apps&act=app&id=$1 [L]
	RewriteRule ^apps(/?)+$ /index.php?go=apps&act=search [L]
	RewriteRule ^apps(/?)+$ /index.php?go=apps&act=view [L]
	RewriteRule ^apps(/?)+$ /index.php?go=apps&act=mydel [L] 
	RewriteRule ^apps(/?)+$ /index.php?go=apps&act=install [L]

	RewriteRule ^editapp/create(/?)+$ /index.php?go=editapp&act=create&id=$1 [L]
	RewriteRule ^editapp/info_([0-9]+)(/?)+$ /index.php?go=editapp&act=info&id=$1 [L]
	RewriteRule ^editapp/options_([0-9]+)(/?)+$ /index.php?go=editapp&act=options&id=$1 [L]
	RewriteRule ^editapp/payments_([0-9]+)(/?)+$ /index.php?go=editapp&act=payments&id=$1 [L]
	RewriteRule ^editapp/admins_([0-9]+)(/?)+$ /index.php?go=editapp&act=admins&id=$1 [L]
	
# Баги
	RewriteCond %{QUERY_STRING} ^act=([a-z]+)
	RewriteRule ^(.*)bugs $1index.php?go=bugs [QSA,L]	
	RewriteCond %{QUERY_STRING} ^id=([0-9]+)
	RewriteRule ^(.*)bugs $1index.php?go=bugs [QSA,L]
	RewriteRule ^bugs(/?)+$ index.php?go=bugs [L]
	
# API
    RewriteRule ^method/messages.get method/messages.get.php [L]
    RewriteRule ^method/messages.set method/messages.set.php [L]
    RewriteRule ^api(/?)+$ method/messages.set method/messages.set.php [L]

	
# Разработчикам
    RewriteRule ^dev(/?)+$ index.php?go=developers [L]
	RewriteRule ^dev/met(/?)+$ index.php?go=met [L]
	RewriteRule ^dev/native(/?)+$ index.php?go=native [L]
	RewriteRule ^dev/tt(/?)+$ index.php?go=tt [L]
	RewriteRule ^dev/standalone(/?)+$ index.php?go=standalone [L]
	RewriteRule ^dev/sites(/?)+$ index.php?go=sites [L]
	RewriteRule ^dev/rules(/?)+$ index.php?go=rules [L]
	
# Статистика страницы пользователя
	RewriteRule ^my_stats(/?)+$ index.php?go=my_stats [L]
	
# Страница юзера
	RewriteRule ^u([0-9]+)(/?)+$ index.php?go=profile&id=$1 [L]
	RewriteRule ^u([0-9]+)after(/?)+$ index.php?go=profile&id=$1&after=1 [L]
	
# Редактирование страницы
	RewriteRule ^editmypage(/?)+$ index.php?go=editprofile [L]
	RewriteRule ^editmypage/contact(/?)+$ index.php?go=editprofile&act=contact [L]
	RewriteRule ^editmypage/interests(/?)+$ index.php?go=editprofile&act=interests [L]
	RewriteRule ^editmypage/all(/?)+$ index.php?go=editprofile&act=all [L]


  • Вопрос задан

    более трёх лет назад

  • 781 просмотр

Пригласить эксперта

Знаете как я поступаю в таких ситуациях? Когда не знаю где ошибка и нет подсказок

Делю код на несколько частей, поочередно удаляю один за другим и смотрю работает или нет, до тех пор пока не заработает, а потом уже работаю над последней удаленною частью, все очень просто, Ватсон

в /var/log/apache2/error.log смотрите, там будет указана, какая именно из директив htacces на этом сервере не работает.
Скорее всего нужно a2enmod rewrite или a2enmod filter


  • Показать ещё
    Загружается…

22 июн. 2023, в 00:59

8000 руб./за проект

22 июн. 2023, в 00:56

8000 руб./за проект

22 июн. 2023, в 00:39

12000 руб./за проект

Минуточку внимания

I wanted to replace the .html extensions with just nothing in apache.

Eg. DNS/coffee.html to be DNS/coffee. I found myself this code.

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/?$ $1.html [L]
</IfModule>

It does the job I wanted, but it doesn’t.

It seems to not like 404.html for errors. Everytime I open a page that doesn’t exist, it doesn’t give me the 404 page anymore, but a 500 internal server error message:

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at EMAIL to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.
Apache/2.4.41 (Ubuntu) Server at URL Port 443

I don’t know what I am suposed to do, google doesn’t give me wise answers, only things like “how to redirect a page to 404.html” or “how to make every link that doesn’t go to this DNS reditect to 404 page.”

Here is the code for .htaccess.

# ------------------Error Pages--------------------
# 404 NOT FOUND
ErrorDocument 404 /errors/404.html
# -----------------Rem .html and .htm extensions---
 
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^([^/]+)/?$ $1.html [L]
</IfModule>

  • Revolt loginto me ошибка you can see the only real
  • Revloader exe системная ошибка
  • Revloader exe ошибка приложения ошибка при запуске приложения 0xc000007b
  • Revit уже установлен ошибка
  • Revit сбой установки ошибка 1603