правило перенаправления htaccess на сервере CENT OS

У меня есть новая настройка сервера на машине CENT OS. Столкнулся с проблемой перенаправления htaccess. Фреймворк — фреймворк Silverstripe Php. (из-за того, что структура проблемы перенаправления htaccess не работает.) в php_info() я вижу - Загруженные модули - mod_rewrite

Ниже приведен один из примеров кода перенаправления, который я использую в своем проекте. Перенаправление из root/go dir. в корень/trk/link.php. Он отлично работает на старом сервере Linux, но не на этом новом сервере. Здесь я получаю сообщение об ошибке «Не найден».

<IfModule mod_rewrite.c>
RewriteEngine on
Redirect /go/ /trk/link.php?param=
</IfModule>

есть ли какая-то конкретная настройка, которую мне нужно сделать в файле apache (httpd.conf)???


person Majeed    schedule 19.11.2013    source источник
comment
Как всегда в таких случаях: посмотрите лог-файл, он для этого и существует. И, возможно, включить ведение журнала перенаправления тоже хорошая идея, не так ли? После того, как вы это сделаете, зайдите сюда и спросите более конкретные детали.   -  person arkascha    schedule 19.11.2013
comment
‹IfModule mod_rewrite.c› RewriteEngine on Redirect /go/ /trk/link.php?param= ‹/IfModule› Вот полный пример кода htaccess.   -  person Majeed    schedule 19.11.2013
comment
Кроме того, если вы сами управляете этим сервером и имеете полную административную власть над демоном http, почему вы используете переписывание в стиле .htaccess? Попробуйте определить статические правила перезаписи в основной конфигурации демона http. .htaccess файлы все замедляют, их сложнее отлаживать и часто они не нужны.   -  person arkascha    schedule 19.11.2013
comment
@аркаша - спасибо. Можете ли вы помочь мне найти точную ошибку из файлов журнала. Я вижу, что два последних файла журнала обновлены. сообщения и безопасность. Я не нахожу, чтобы там создавалась какая-либо конкретная запись журнала ошибок.   -  person Majeed    schedule 19.11.2013
comment
@arkascha - Что, если у меня установлен php framework и он использует правила перенаправления htaccess.   -  person Majeed    schedule 19.11.2013
comment
Я имел в виду файлы журнала демонов http, а не файлы журнала системы. Их расположение зависит от вашей настройки, в CentOS это, вероятно, старомодный /var/log/httpd/. Там должен быть как минимум доступ и файл журнала ошибок. И файл журнала перенаправления, если вы включили его в конфигурации демонов.   -  person arkascha    schedule 19.11.2013
comment
Если ваша структура настаивает на использовании файлов стиля .htaccess, вы должны либо принять это и играть в эту игру, либо вы должны один раз сгенерировать правила перезаписи, а затем перенести их в основную конфигурацию. Пока придерживайтесь первого варианта.   -  person arkascha    schedule 19.11.2013
comment
Хорошо, я нашел именно тот файл журнала, о котором вы говорите, я вижу эти ошибки там, но все же это не сделало мне никакого сеанса, потому что я не очень хорошо разбираюсь в настройках сервера и файлах журнала: P - - доменное имя myipadd - - [19/ноября/2013:00:36:23 -0700] GET /go/appcode/1/ HTTP/1.1 404 211 [Вт, 19 ноября, 00:36:23 2013] [ошибка] [клиент myipadd] Файл не существует: /apache/root/go/appcode   -  person Majeed    schedule 19.11.2013
comment
Хорошо, это запрос, приводящий к ошибке 404, поскольку, очевидно, перезапись вообще не улавливается. Вам необходимо активировать ведение журнала внутри модуля перезаписи. Поскольку вы явно используете демон apache http, вам следует обратиться к отличной документации по модулю перезаписи: http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html   -  person arkascha    schedule 19.11.2013
comment
О, еще один совет: вам, возможно, придется сначала включить поддержку файлов стилей .htaccess. Вы делаете это в основной конфигурации http-сервера. Обычно он отключен, так как это поток безопасности.   -  person arkascha    schedule 19.11.2013
comment
Не могли бы вы указать, где именно я могу найти основной файл конфигурации http-сервера???   -  person Majeed    schedule 19.11.2013
comment
Вы используете общедоступный http-сервер, но никогда не касались его конфигурации? О боже... Взгляните на /etc/httpd или аналогичный и прочитайте документацию! Вы не можете управлять сервером в Интернете, не учитывая хотя бы самые основные детали конфигурации. Здесь мы говорим об базовой безопасности вашей системы!   -  person arkascha    schedule 19.11.2013
comment
:)......... Я нахожусь в /etc/httpd/conf... и там есть файл настроек апача - httpd.conf...... Проверяю... давайте посмотри, понял ли я что-нибудь здесь :P............   -  person Majeed    schedule 19.11.2013


Ответы (1)


Избавьтесь от контейнера IfModule и строки движка перезаписи. Директива Redirect является частью mod_alias, который обычно загружается всегда. Вам вообще не нужно проверять наличие mod_rewrite. Итак, вам просто нужно:

Redirect /go/ /trk/link.php?param=

Обратите внимание, что это перенаправляет браузер, но, учитывая, что это было на другом сервере, я уверен, что вы знаете, что это происходит.

person Jon Lin    schedule 19.11.2013