2014-10-16 1 views
1

Недавно я перевел мой рабочий сайт modx в свою локальную систему с сервера общедоступного хостинга, на котором у меня есть. На дружественных URL-адресах сервера (LAMP) работают. На дружественных URL-адресах моего локального компьютера (WAMP) возникает ошибка 404 (хотя, как описано другими, фактический URL-адрес выглядит корректно, он просто не работает). (конкретно мой местный Виндоус 8)
сервер Apache версии 2.2.29 =
Local Apache версии = 2.2.25 (там нет окна установки для 2.2.29)
PHP на сервере = 5,4
PHP на local = 5.4modx Revolution 2.3.x FURLs (дружественные URL), не работающие над WAMP

Важно: все другие возможности modx, похоже, очень хорошо работают на моем локальном компьютере. Я пошел за официальным modx instructions для перемещения сайта революции из одного места в другое. Кроме того, было бы полезно указать, что я добавил запись в файл моих хостов, чтобы указать домен на localhost, чтобы домен не менялся ... таким образом, все, что зависит от домена, не будет ломаться, когда я переместите его из локальной локальной среды разработчика на сервер.

Что я сделал для исследования:
Искал широко в Интернете & здесь, на StackOverflow. Так что я прочитал и пробовал различные вещи из различных статей на этом сайте, прежде всего в том числе: This one This one & This one , а также другие, которые я не перечисляю. Я также читал больше о настройках .htacces (хотя я довольно знаком с Rewrites ...).

Что я сделал, чтобы попытаться исправить это:
-Modifications моей .htaccess
заворачивающий и выключать все другие параметры в настройках системы для FURL кроме опции для включения/выключения FURLs (System_Settings -> Area: Friendly URL)
-I также проверял, что мои установленные модули apache такие же, как у моего сервера/веб-хоста (в частности, mod_rewrite, а также другие).
-Я также подтвердил, что у моего локального PHP есть минимальная требуемая загрузка добавок, которые требуются или рекомендуются для modx.

Я все еще смотрю на это, поэтому есть шанс, что я найду ответ, прежде чем я получу много ответов, но я полагаю, что стоит спросить.

Заранее спасибо.

UPDATE:
Я также попытался переместить все настройки конфигурации выхода из .htaccess (ну кроме RewriteBase, потому что положить его в httpd.conf вызывает ошибку апачский, что делает апач не сработал ... он предназначен для входа только в файлы .htaccess). Это тоже не помогло. Я также вручную удалил все из кеш-файла, это также не помогло &. В последнее время я отключил дружественные URL-адреса, подтвердил, что могу получить доступ к ресурсам, а затем снова включил их. Это последнее усилие тоже не помогло.

ответ

1

ОК, так что после долгих ожиданий ответов и многого чтения на дружественных URL-адресах & переписывает (хотя ...Я действительно не мог понять, как переписать может быть проблема, потому что она работала на сервере и в любом случае не казалась неправильной), я нашел ответ на свою проблему.

Ответ/Исправление:
Если у вас есть директивы VirtualHost, Добавьте это в директиве Directory, как это:

<Directory "[same directory as virtual host]">

директиву. Если у вас нет директивы VirtualHost, попробуйте добавить его, а затем добавьте директиву Directory.


Пример

<VirtualHost *:80> 
 
ServerName somedomain.com 
 
DocumentRoot "D:/websitefiles/websitefilesforsomedomain" 
 
</VirtualHost> 
 
<Directory "D:/websitefiles/websitefilesforsomedomain"> 
 
Options +SymLinksIfOwnerMatch 
 
RewriteEngine On 
 
#####RwriteBase is removed because it isn't allowed in the httpd.conf instead it must be in a .htaccess file 
 
#RewriteBase/
 

 
#NOTE: there were other things here that are part of the .htaccess provided by modx that I am using but they are not relevant to the friendly URLs 
 
    
 
# The Friendly URLs part 
 
RewriteCond %{REQUEST_FILENAME} !-f 
 
RewriteCond %{REQUEST_FILENAME} !-d 
 
RewriteRule ^(.*)$ /index.php?q=$1 [L,QSA,NC] 
 
</Directory>

Так что мои догадки 1. что выше было необходимо, потому что я уже имел ряд директив VirtualHost (это моя машина развитие после того, как все ... На самом деле у меня есть много директив VirtualHost ...) ИЛИ 2. что, поскольку Windows имеет разные \ как часть путей (вы знаете D: \ webs itefiles \ вместо/var/www /), что необходима дополнительная ссылка на конкретный каталог ... Возможно, Apache не смог понять, где применить это из-за отсутствия пути или нескольких возможных путей ...? Нечетная часть для меня - файл .htaccess в каталоге должен иметь TOLD Apache, где его применять, но это не сработало. Важный момент: я поставил выше в моем httpd.conf ... он, вероятно, может вернуться в .htaccess, но я не определяю свои виртуальные хосты в .htaccess
(примечание Apache 2.4: я не знаю как это будет работать в Apache 2.4, где настоятельно рекомендуется, чтобы виртуальные хосты вошли в файл для виртуальных хостов ... Я предполагаю, что все это, возможно, пошло туда, и все будет работать так же, как здесь ... но я на самом деле не знаю, t знать).

В любом случае это сработало. Я надеюсь, что это работает для всех, у кого есть аналогичная проблема (ПРИМЕЧАНИЕ. Я работаю с кем-то, у кого возникают трудности с тем, чтобы это работало на машине разработки Windows 7 ... Я попрошу его попробовать выше и посмотреть, исправляет ли он его проблема для него, а также & попытайтесь вспомнить, чтобы сообщить об этом).