2016-01-28 6 views
2

Я был сумасшедшим с этой проблемой в течение 3 дней, и как бы я ни искал Google или не читал веб-сайт Helion, я не могу понять, что я делаю неправильно. Поэтому я надеюсь, что кто-то будет добр, чтобы помочь мне.Есть ли что-то не так с моим кодом перезаписи в .htaccess файле

Я использую файл .htaccess, чтобы создать URL-адрес поисковой системы, и он хорошо работал уже несколько лет.

Теперь моя веб-хостинга перенесла мой сайт на новый сервер Windows IIS8.5, и переписывание больше не работает. Они говорят мне, что используют Helicon Ape (не уверен, что это такое). Но я не могу найти что-либо на веб-сайте Helicon, который имеет для меня смысл, поскольку он слишком технический для моего старого пенсионера.

Вот пример кода, который используется для работы на старом сервере:

# Helicon ISAPI_Rewrite configuration file 
RewriteEngine on 
RewriteBase/
RewriteRule ^uk-bed-breakfast-(.*)\.htm /bed-and-breakfast/region.asp\?county=$1 [QSA] 

Это используется для включения

www.mydomain.com/bed-and-breakfast/region.asp?county=first

в

www.mydomain.com/uk-bed-breakfast-first.htm

Теперь я получаю когда я использую второй URL, это ошибка 404.

Нужно ли мне делать какие-либо изменения в соответствии с новой версией IIS или Helicon Ape Rewrite, и если да, то они

+2

Не слишком уверен, но вы можете попробовать удалить «RewriteBase». Также существует вероятность того, что хостинг-провайдер не включил 'rewrite_module' в' httpd.conf' - вы всегда можете определить это, добавив в текст файла тубелярный/случайный текст (если вы получаете внутреннюю ошибку сервера, то модуль включен). –

+0

Из того, что я могу собрать, модуль Helicon-Ape .Net - это эмулятор Apache, который означает, что он не обязательно будет «похож на», если вы прочитали [совместимость с Apache] (http://www.helicontech.com/ ape/doc/compatible.htm) есть полезная диаграмма, показывающая доступность определенных функций на разных платформах? В статье говорится, что «Helicon Ape предназначен для поддержания максимальной совместимости с Apache. Хотя эта цель была достигнута на очень высоком уровне, ** некоторые функции могут быть реализованы не потому, что они слишком ограничены для дизайна Apache или UNIX, и их реализация в IIS бессмысленно **. * * – Lankymart

+0

Я могу просто раскалывать волосы, но это правило 'RewriteRule^uk-bed-breakfast-(. *) \. htm /bed-and-breakfast/region.asp\?county=$1 [QSA] 'не будет соответствовать' www.mydomain.com/bed-and-breakfast.asp? county = first' есть ли какой-то конфиг, который вы не видите? Не должно быть правила ReWriteRule^uk-bed-breakfast - (. *) \. Htm /bed-and-breakfast.asp\?county=$1 [QSA] '? – Lankymart

ответ

0

После долгих кропотливых экспериментов проблема наконец решена.

Кажется, что с новым сервером iis8.5 и Helion Ape мне нужно было переставить правила перезаписи в файл web.config вместо файла .htaccess.

Новое правило для примера я дал в вопросе:

<rule name="Imported Rule 6"> 
        <match url="^uk-bed-breakfast-(.*)\.htm" ignoreCase="false" /> 
        <action type="Rewrite" url="/bed-and-breakfast/region.asp?county={R:1}" appendQueryString="true" /> 
       </rule> 

Используя эту систему веб-сайт находится на последнюю работу правильно.

Большое спасибо всем, кто пытался помочь.

Tog