Не могу начать с mod_rewrite - PullRequest
3 голосов
/ 29 апреля 2009

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

Теперь, однако, я экспериментирую с сервером Apache, который я могу перезапустить и настроить на свое усмотрение, но я не могу заставить работать даже простой пример перезаписи, то есть после того, как я прочитал по крайней мере два урока. Я играл с LogLevel и RewriteLog, но я не могу найти реальных доказательств того, что мои действительно базовые правила перезаписи используются. Мой файл журнала перезаписи был создан, но он пуст. Я также попытался закомментировать каждую вещь из httpd.conf, но переписать вещи.

Посмотрим, какую еще информацию я могу добавить:

chilcott:/etc/apache2/conf.d# uname -a
Linux chilcott 2.6.26-1-486 #1 Sat Jan 10 17:46:23 UTC 2009 i686 GNU/Linux


chilcott:/etc/apache2/conf.d# apache2ctl -V
Server version: Apache/2.2.9 (Debian)
Server built:   Jan 20 2009 17:29:25
Server's Module Magic Number: 20051115:15
Server loaded:  APR 1.2.12, APR-Util 1.2.12
Compiled using: APR 1.2.12, APR-Util 1.2.12
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT=""
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="/var/run/apache2/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/etc/apache2/apache2.conf"

Ответы [ 2 ]

3 голосов
/ 29 апреля 2009

У вас есть правила перезаписи в правой части вашего httpd.conf? Вероятно, они должны быть в разделе vhost.

Может помочь размещение вашего httpd.conf (или хотя бы его части).

Это должно выглядеть примерно так:

LoadModule rewrite_module modules/mod_rewrite.so

RewriteLogLevel 9
RewriteLog ".....rewrite.log"


<VirtualHost *:80>
    DocumentRoot "..."

    RewriteEngine On
    RewriteRule ^/foo /bar
</VirtualHost>
1 голос
/ 29 апреля 2009

Вам необходимо загрузить модуль, чтобы использовать его. Найдите в файле httpd.conf строку, подобную следующей, и удалите начальный символ комментария #, если он есть:

#LoadModule rewrite_module modules/mod_rewrite.so

Тогда вам просто нужно перезагрузить сервер Apache.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...