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

404 Ошибка в существующем файле?

Сценарий делает запрос GET на мой URL-адрес следующим образом:

http://mydomain.com/cgi-bin/uu_ini_status_audios.pl?tmp_sid=b742be1d131c4d32237a9f1fcdca659e&rnd_id=0.2363453360320319

Однако я сразу же получаю 404:

The requested URL /cgi-bin/uu_ini_status_audios.pl was not found on this server.

Но этот сценарий существует на моем сервере, я вижу файл! У него есть правильные разрешения (я дал ему 777, чтобы быть уверенным). Он также принадлежит моему пользователю apache и находится в группе apache.

Что мне не хватает ??

Спасибо за любую помощь!

Обновить

Я думал, что это будет htaccess (переписать), но больше не думаю. Я попытался поместить туда файл index.php и попытаться получить к нему доступ через свой URL-адрес, но я даже не могу этого сделать! Я пробовал это:

http://mydoamin.com/cgi-bin/index.php - та же ошибка 404! Я получаю это в моем журнале ошибок:

[Tue Sep 14 14:42:49 2010] [error] [client xx.xxx.xx.xxx] script not found or unable to stat: /var/www/vhosts/mydomain.com/cgi-bin

Файл Access_log:

xx.xxx.xx.xxx - - [14 / сен / 2010: 14: 48: 25 +0200] "GET /cgi-bin/index.php HTTP / 1.1" 404 475 "-" "Mozilla / 5.0 (Windows; U; Windows NT 6.0; en-US; rv: 1.9.2.9) Gecko / 20100824 Firefox / 3.6.9 (.NET CLR 3.5.30729) "

Обновление 2

Мой файл htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^blog/ - [L]
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com$ [NC]
RewriteRule ^(.*)$ http://mydomain.com/$1 [R=301,L]
RewriteRule ^search/(.*)/(.*)/(.*)/(.*) /search.php?searchfor=$1&sortby=$2&page=$3&searchterm=$4
RewriteRule ^confirmemail/(.*) /confirmemail.php?code=$1
RewriteRule ^resetpassword/(.*) /resetpassword.php?code=$1
RewriteRule ^resendconfirmation/(.*) /resendconfirmation.php?userid=$1
RewriteRule ^categories/ /categories.php
RewriteRule ^([-_~*a-zA-Z0-9]+)(\/)?$ /memberprofile.php?username=$1
RewriteRule ^browse/audios/(.*)/(.*)/(.*)/(.*) /audios.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^browse/categories/audios/(.*)/(.*)/(.*)/(.*) /categoryaudios.php?sortby=$1&filter=$2&page=$3&title=$4
RewriteRule ^audios/(.*)/(.*) /playaudio.php?audioid=$1&title=$2
RewriteRule ^download/audio/(.*)/(.*) /downloadaudio.php?AUDIOID=$1&title=$2
RewriteRule ^members/audios/(.*)/(.*) /memberaudios.php?pid=$1&username=$2
RewriteRule ^syndicate/audios/(.*)/(.*) /syndicateaudios.php?filter=$1&title=$2
</IfModule>

Обновление 3

[root@smydomain ~]# ls -la /var/www/vhosts/mydoamin.com/httpdocs/cgi-bin/
total 60
drwxr-xr-x  3 apache root     4096 Sep 14 14:37 .
drwxr-x--- 20 som    psaserv  4096 Sep 14 14:40 ..
drwxr-xr-x  2 apache root     4096 Sep  7 03:01 configs
-rwxrwxrwx  1 apache root        4 Sep 14 14:37 index.php
-rwxrwxrwx  1 apache apache   6520 Sep  7 03:01 uu_ini_status_audios.pl
-rwxr-xr-x  1 apache root     3215 Sep  7 03:01 uu_lib_audios.pl
-rwxr-xr-x  1 apache root    30249 Sep  7 03:01 uu_upload_audios.pl

SuExec был для меня проблемой.

Отключение означает, что мои скрипты в cgi-bin могут работать. Но вы должны убедиться, что каталог и сценарии имеют одинаковые разрешения, т.е. 0755. Кроме того, каталог и сценарии должны принадлежать одному и тому же человеку.

Это были требования, чтобы мои скрипты работали! Я надеюсь, что это поможет кому-то.

В своем посте вы сказали, что не смогли найти /var/www/vhosts/mydomain.com/cgi-bin; что происходит, когда ты бежишь ls -la /var/www/vhosts/mydomain.com/cgi-bin?

Кроме того, я заметил, что он сказал, что не может cgi-bin папка; ваше правило mod_rewrite перенаправляет все запросы от /var/www/vhosts/mydomain.com/cgi-bin/index.php к /var/www/vhosts/mydomain.com/cgi-bin ошибочно?

Обновите свой вопрос, если узнаете больше.

РЕДАКТИРОВАТЬ: Включите журнал mod_write установив следующее:

RewriteLog /path/to/where/logs/live
RewriteLogLevel 5

Это должно дать вам достаточно данных, чтобы увидеть, mod_rewrite влияет на ваш запрос.

Я также видел ошибки, когда URL-адрес передавался в Firefox как 404. Передача того же URL-адреса wget вернул 500 Internal Server Error и показал ошибки в файле журнала. Возможно, стоит попробовать wget для всех, у кого есть эта проблема.

В моем случае это было результатом попытки включить файл в сценарий PHP из несуществующего каталога.