2013-12-12 2 views
1

Хорошо, я начинаю думать, что проблема в мне, но ... ¿Что здесь не так?Очень простая конфигурация .htaccess mod_rewrite дает 404

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/
RewriteRule testpage\.html http://www.google.com [R] #It works 
RewriteRule ^mineral/([0-9]+)/?$ ver.php?id=$1 [NC,L] #It doesn't 

У меня есть папка с именем «WebX» и этот .htaccess внутри нее вместе с другими файлами из Интернета. mod_rewrite работает нормально в соответствии с phpinfo, и все работает на localhost. Самое интересное, что если я нахожу localhost/WebX/testpage.html, он перенаправляет на Google , но, к сожалению, для меня, если я нахожу localhost/WebX/mineral/1, он дает мне 404. ¿Что происходит?

+0

Есть ли ver.php в наличии? Переадресация на Google по-прежнему работает, если вы изменили первое правило на^testpage \ .html $? – jwulf

+0

ver.php существует (я только что проверил прямо сейчас, возможно, я мог бы изменить его имя, но нет, существует и работает), и да, он все еще работает, если я положил «^» до «testpage». Что это может быть? – user2409347

ответ

1

Проблема, с которой вы сталкиваетесь, вызвана RewriteBase /. Ваш .htaccess находится в подкаталоге /WebX/, но вы сообщаете mod_rewrite, чтобы переписать правила, как если бы текущий каталог был /. Он пытается загрузить файл в ваш www-root, которого не существует. Если у вас есть подробные сообщения об ошибках с файлом, который он пытался загрузить, вы заметите, что он говорит, что он пытался загрузить /ver.php, а не /WebX/ver.php, как вы могли ожидать.

Остальное, что вы делаете, особенно с использованием относительного URL-адреса вместо / с префиксом абсолютного URL-адреса, кажется правильным. Правильный .htaccess для использования будет:

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase /WebX/ 
RewriteRule testpage\.html http://www.google.com [R] #It works 
RewriteRule ^mineral/([0-9]+)/?$ ver.php?id=$1 [NC,L] #It now should work 
+0

Прежде всего, спасибо за ваш интересный и для вас ответ. К сожалению, он все еще не работает, с той же проблемой. Одна вещь, которую я забыл сказать, заключается в том, что ошибка 404 относится к «минералу» как к каталогу, он не говорит о ver.php. Ошибка подобна «Запрошенный URL/WebX/mineral/1 не найден на этом сервере». Ver.php, параметр «id» и «1» существуют. – user2409347

+0

Где находится '/ pacoWeb /'? – Sumurai8

+0

Это настоящее имя каталога, я предпочитаю говорить о WebX, мне легче – user2409347

Смежные вопросы