Объедините правила переписывания 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:
Имена правил не обязаны использовать то же, что в примере с сервером, просто необходимо, чтобы ваши правила имели правильное отношение. Надеюсь, это решение может быть полезным.