Jump to content
  • 0

500 Internal Server Error mod_rewrite


antonzol
 Share

Question

Сообщение в браузере:

500 Internal Server Error

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

Please contact the server administrator, support@хостер 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.

Apache Server at имя сайта Port 80

Запись в логе сервера:

[Tue Jun 21 10:48:08 2011] [error] [client мой айпишник] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.

Содержимое файла .htaccess

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.домен

RewriteRule (.*) http://домен/$1 [R=301,L]

RewriteRule ([\w-]+)/([\w-]+)/$ /index.php?type=static&parent=$1&child=$2 [L]

RewriteRule ([\w-]+)/([\w-]+)$ /index.php?type=static&parent=$1&child=$2 [L]

RewriteRule ([\w-]+)/$ /index.php?type=static&child=$1 [L]

RewriteRule ([\w-]+)$ /index.php?type=static&child=$1 [L]

php_flag magic_quotes_gpc Off

AddDefaultCharset utf-8

Ошибку, насколько я понимаю зацикливание вызывает строчка RewriteRule ([\w-]+)$ /index.php?type=static&child=$1 [L] .

Подскажите плиз, как исправить.

Link to comment
Share on other sites

4 answers to this question

Recommended Posts

  • 0

А зачем вот так

RewriteRule ([\w-]+)/([\w-]+)/$ /index.php?type=static&parent=$1&child=$2 [L]
RewriteRule ([\w-]+)/([\w-]+)$ /index.php?type=static&parent=$1&child=$2 [L]

Может, попробоваь это хозяйство заменить на

RewriteRule ([\w-]+)/([\w-]+)/?$ /index.php?type=static&parent=$1&child=$2 [L]

Link to comment
Share on other sites

  • 0

Спасибо, заменил, но второе правило все равно приводит к ошибке.

текущий файл:

Options +FollowSymLinks

RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.домен

RewriteRule (.*) http://домен/$1 [R=301,L]

RewriteRule ([\w-]+)/([\w-]+)/?$ /index.php?type=static&parent=$1&child=$2 [L]

RewriteRule ([\w-]+)/$ /index.php?type=static&child=$1 [L]

php_flag magic_quotes_gpc Off

AddDefaultCharset utf-8

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

Link to comment
Share on other sites

  • 0

Придумал вариант решения, но как сделать - не знаю.

Заставить все ссылки, которые без / в конце переадресовываться на аналогичные с / в конце, как например на сайте

http://www.artlebedev.ru/everything

Link to comment
Share on other sites

  • 0

Вообще я для таких целей (и не только для этих) всегде держу nginx на фронтенде — там как-то всё более гибко и понятно. Как-то так вроде надо делать:

if ($uri ~* (.+)\/+$) {rewrite ^(.*)$ http://$host$1 permanent;}

Ну а в htaccess будет правило типа такого

RewriteRule (.+)/+$ /$1 [L,R=301]

Я вообще не очень с .htaccess дружу, поэтому могу ошибаться, но смысл такой.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy