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

проблема с включением apache mod_rewrite на xampp

Я пытаюсь включить перезапись мода на apache для xampp, код раскомментировал

LoadModule rewrite_module modules/mod_rewrite.so

также у меня есть AllowOverride All, но он все еще не работает,

Я получаю сообщение об ошибке 400, в котором говорится

Плохой запрос!

Ваш браузер (или прокси) отправил запрос, который этот сервер не может понять.

поэтому я попытался установить версию сообщества zend server, в которой есть apache, и я сделал все следующее, и переписывание URL-адреса работает, но на этот раз общая папка внутри веб-приложения скрыта в apache, и когда я пытаюсь скопировать контент из общей папки и получить доступ к ней в корне, я получаю сообщение об ошибке 500, в котором говорится

Внутренняя ошибка сервера

Сервер обнаружил внутреннюю ошибку или неправильную конфигурацию и не смог выполнить ваш запрос.

Буду признателен, если кто-нибудь поможет мне настроить один из них. Я пытаюсь использовать фреймворк zend.

Спасибо

.htaccess

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

php_flag short_open_tags on

журнал ошибок apache:

Неверный URI в запросе GET / webfolder / zf-tutorial / public / index / add HTTP / 1.1, referer: http: // локальный / веб-папка / zf-учебник / общедоступный /

Обновить: Я переместил веб-приложение в htdocs в apache, и теперь все работает, я раньше указывал корень в следующий каталог

Alias /webfolder/ "C:/Users/Amir/Documents/webfolder/" 
Alias /webfolder "C:/Users/Amir/Documents/webfolder" 

любые идеи, почему это не работало раньше. Спасибо

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

Удалите первую строку и удалите относительный путь из последнего RewriteRule:

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Этот .htaccess должен быть в ваш общедоступный / каталог.

Пожалуйста, посмотрите руководство. Добавление дополнительных правил RewriteRules - не решение.

AllowOverride включает файлы .htaccess. я предполагаю, что у вас плохой .htaccess на пути к веб-сайту.

Если у вас есть недопустимый синтаксис в файле .htaccess, вы получите ошибку сервера 500.

включения перезаписи также недостаточно, вам нужно добавить строку RewriteEngine On в ваш файл virtualhost или .htaccess, а затем следовать ей с вашими правилами перезаписи

ОКРУГ КОЛУМБИЯ