LINUX.ORG.RU
решено ФорумAdmin

Не работает mod_rewrite на apache 2.4

 ,


0

1

Приветствую, коллеги!

Наткнулся на проблему - при добавлении в конфигурационный файл виртуального хоста правил rewrite обработки не происходит. Правила написаны для перенаправления с корня сервера на подпапку mediawiki.

# apachectl -v
Server version: Apache/2.4.10 (Ubuntu)

mod_rewrite включил.

Собственно добавленные правила:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/$
RewriteRule (.*) /mediawiki/ [R=301]

ЧСХ, на соседнем сервере точно такой же конфигурации - все работает. Что я мог упустить?



Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от shrub

Яволь

# apache2ctl -M
Loaded Modules:
 core_module (static)
 so_module (static)
 watchdog_module (static)
 http_module (static)
 log_config_module (static)
 logio_module (static)
 version_module (static)
 unixd_module (static)
 access_compat_module (shared)
 alias_module (shared)
 auth_basic_module (shared)
 authn_core_module (shared)
 authn_file_module (shared)
 authnz_ldap_module (shared)
 authz_core_module (shared)
 authz_host_module (shared)
 authz_user_module (shared)
 autoindex_module (shared)
 deflate_module (shared)
 dir_module (shared)
 env_module (shared)
 filter_module (shared)
 ldap_module (shared)
 mime_module (shared)
 mpm_prefork_module (shared)
 negotiation_module (shared)
 php5_module (shared)
 rewrite_module (shared)
 setenvif_module (shared)
 status_module (shared)

alexnorton
() автор топика
Ответ на: комментарий от anonymous

AllowOverride All прописан в том же конфигурационном файле, который относится к виртуальному хосту. хтацсесса нет.

alexnorton
() автор топика
Ответ на: комментарий от alexnorton

А вообще rewrite работает? Проверь, скажем, безусловное

RewriteRule ^.*$ qwerty [L]

Если не 404, надо, наверно, полный конфиг смотреть.

anonymous
()
Ответ на: комментарий от alexnorton

В общем, в какой то из минорных версий Apache 2.4 был баг, связанный с тем, что mod_rewrite загружался, но не работал. Они его к версии 2.4.9 вроде починили, но тем не менее, «в лоб» он не работает.
Решил проблему следующим образом:
-AllowOverride разрешил в apache.conf
- создал таки .htaccess в корневой папке, настроил его в соответствии с мануалом на сайте апача

<code>
RewriteEngine On
RedirectMatch «^/$» «/mediawiki/
</code>

заработало.

alexnorton
() автор топика

перенаправления с корня сервера на подпапку mediawiki

Почему просто не сменить DocumentRoot?

thesis ★★★★★
()
Ответ на: комментарий от alexnorton

RedirectMatch - директива не из mod_rewrite. «RewriteEngine On» больше не нужен.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от thesis

В смысле, не нужно? Знаком с потребностями топикстартера?

Если предполагалось перенаправление только запроса /, но не файла в корне - твой вариант c DocumentRoot не работает. А с RedirectMatch - да, хорошо.

anonymous
()
Ответ на: комментарий от anonymous

Не нужно раздавать произвольное файло из корня виртхоста, и пофиг тут какие у кого потребности.

thesis ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.