Объедините правила переписывания WordPress и Subdomain для сервера 'Zeus'

В настоящее время я работаю с сервером Zeus, и у нас есть веб-сайт, который разработан с использованием Wordpress. Zeus Sever не поддерживает файл.htaccess, который требуется для установки WordPress, а также для SEO. тем не менее, есть еще один способ, которым мы можем управлять Zeus для решения наших задач путем определения некоторых правил перезаписи.

Для WordPress в настоящее время мы используем следующие правила перезаписи:

RULE_0_START:

# get the document root

map path into SCRATCH:DOCROOT from /
# initialize our variables
set SCRATCH:ORIG_URL = %{URL}
set SCRATCH:REQUEST_URI = %{URL}

# see if theres any queries in our URL
match URL into $ with ^(.*)\?(.*)$
if matched then
set SCRATCH:REQUEST_URI = $1
set SCRATCH:QUERY_STRING = $2
endif
RULE_0_END:

RULE_1_START:
# prepare to search for file, rewrite if its not found
set SCRATCH:REQUEST_FILENAME = %{SCRATCH:DOCROOT}
set SCRATCH:REQUEST_FILENAME . %{SCRATCH:REQUEST_URI}

# check to see if the file requested is an actual file or
# a directory with possibly an index. don?EUR(TM)t rewrite if so
look for file at %{SCRATCH:REQUEST_FILENAME}
if not exists then
look for dir at %{SCRATCH:REQUEST_FILENAME}
if not exists then
set URL = /index.php?q=%{SCRATCH:REQUEST_URI}
goto QSA_RULE_START
endif
endif

# if we made it here then its a file or dir and no rewrite
goto END
RULE_1_END:

QSA_RULE_START:
# append the query string if there was one originally
# the same as [QSA,L] for apache
match SCRATCH:ORIG_URL into % with \?(.*)$
if matched then
set URL = %{URL}&%{SCRATCH:QUERY_STRING}
endif
goto END
QSA_RULE_END:

нужен поддомен для нашего проекта:

Наш поставщик услуг хостинга "netregistry.com.au" не основан на Cpanel, что усложняет нашу работу по настройке субдомена. NETregistry предоставляет учебное пособие, которое поможет нам настроить поддомен.

http://www.netregistry.com.au/support/articles/create-a-subdomain-to-point-to-a-directory

однако, чтобы заставить поддомен работать, нам нужно добавить правило перезаписи для сервера Zeus.

Следующее правило переписывания нам нужно добавить:

RULE_1_START:
insensitive match IN:Host into % with ^www.example.com.au
if  matched then goto END
RULE_1_END:

RULE_2_START:
insensitive  match IN:Host into % with ^(.*).example.com.au
if matched then match URL  into $ with ^/(.*)
if not matched then goto RULE_2_END
set URL =  /%1/$1
RULE_2_END:

Проблема в том, что мы уже написали правило 1 для Wordpress. и если мы снова разместим правило 1, сервер будет игнорировать правило 1. Кто-нибудь имеет представление о том, как мы можем объединить правила перезаписи?

Помогите нам объединить правило переписывания WordPress и поддоменов

1 ответ

Я исправил это!! У меня тоже была эта проблема. Я просто узнал немного больше о правилах Зевса и создал свою собственную комбинацию. Проверьте мое решение для поддоменов и wp в корневом сайте:

RULE_3_START:
нечувствительное совпадение IN: хост в% с ^www.myexample.com
если соответствует, перейдите к RULE_2_END
RULE_3_END:

RULE_2_START:
нечувствительное совпадение IN: хост в% с ^(.*).myexample.com
если соответствует, сопоставьте URL в $ с ^/(.*)
если не совпадает, переходите к RULE_2_END
установить URL = /% 1 / $ 1
RULE_2_END:


RULE_0_START:
# получить корень документа
отобразить путь в SCRATCH:DOCROOT из /
# инициализировать наши переменные
установить SCRATCH:ORIG_URL =% {URL}
set SCRATCH: REQUEST_URI =% {URL}

# посмотреть, есть ли какие-либо запросы в нашем URL
сопоставить URL в $ с ^(.*)\?(.*)$
если соответствует
установить SCRATCH:REQUEST_URI = $1
установить SCRATCH:QUERY_STRING = $2
ENDIF
RULE_0_END:

RULE_1_START:
# подготовиться к поиску файла, переписать, если он не найден
установить SCRATCH:REQUEST_FILENAME = %{SCRATCH:DOCROOT}
установить SCRATCH:REQUEST_FILENAME . %{СКРЕСТ: REQUEST_URI}

# проверить, является ли запрашиваемый файл фактическим файлом или
# каталог с возможно индексом. не?EUR(TM) т переписать, если так
искать файл в%{SCRATCH:REQUEST_FILENAME}
если не существует то
найдите каталог в%{SCRATCH:REQUEST_FILENAME}
если не существует то
set URL = /index.php?q=% averageSCRATCH:REQUEST_URI}
перейти к QSA_RULE_START
ENDIF
ENDIF

# если мы сделали это здесь, то это файл или каталог, и не переписывать
Goto END
RULE_1_END:

QSA_RULE_START:
# добавить строку запроса, если она была изначально
# так же, как [QSA,L] для apache
сопоставить SCRATCH:ORIG_URL в% с \? (. *) $
если соответствует
set URL = %{URL}&%{SCRATCH:QUERY_STRING}
ENDIF
Goto END
QSA_RULE_END:

Имена правил не обязаны использовать то же, что в примере с сервером, просто необходимо, чтобы ваши правила имели правильное отношение. Надеюсь, это решение может быть полезным.

Другие вопросы по тегам