У меня есть общая учетная запись хоста, настроенная в GoDaddy. Я хочу разместить несколько веб-сайтов, каждый со своим собственным доменным именем в одной учетной записи. Каждый сайт будет находиться в своей собственной подпапке, и только файл web.config содержит правила перезаписи URL в корне. У меня он в основном работает, но я не могу заставить URL-адреса работать по своему вкусу.
Один из имеющихся у меня сайтов - это установка Wordpress. Проблема с этим в том, что я не могу заставить работать мои "красивые" постоянные ссылки. Мне нужно включить index.php или подпапку, в которой он находится, как часть постоянной ссылки.
Я также буду размещать приложения ASP.NET MVC 2, но пока хочу сосредоточиться на проблеме Wordpress, потому что это более актуально. Я упоминаю эти другие сайты только потому, что хочу проиллюстрировать мои планы немного лучше.
В корне у меня есть следующий файл web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<identity impersonate="false" />
</system.web>
<system.webServer>
<rewrite>
<rules>
<rule name="somewordpresssite.com" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www.)?somewordpresssite.com" />
<add input="{PATH_INFO}" pattern="^/somewordpresssite/" negate="true" />
</conditions>
<action type="Rewrite" url="\somewordpresssite\{R:0}" />
</rule>
<rule name="someaspnetmvcsite.com" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^(www.)?someaspnetmvcsite.com" />
<add input="{PATH_INFO}" pattern="^/someaspnetmvcsite/" negate="true" />
</conditions>
<action type="Rewrite" url="\someaspnetmvcsite\{R:0}" />
</rule>
</rules>
</rewrite>
<directoryBrowse enabled="false" />
</system.webServer>
</configuration>
Затем в моей подпапке Wordpress у меня есть файл web.config для сайта Wordpress:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wordpress" patternSyntax="Wildcard">
<match url="*"/>
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
</conditions>
<action type="Rewrite" url="index.php"/>
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Кажется, что правила перезаписи URL в корне работают, по крайней мере, достаточно хорошо, чтобы два домена указывали на два разных сайта. Есть ли что-то, что мне нужно сделать, чтобы получить постоянные ссылки на моем сайте Worpress?
Как оказалось, мне нужно было изменить конфигурацию моего домена на GoDaddy, чтобы получить постоянные ссылки, которые я искал. Проблема, которую я описал, оказалась проблемой только для моего домена по умолчанию, хотя у меня было перенаправление во вложенную папку. Что мне нужно было сделать, так это создать фиктивный домен в качестве моего домена по умолчанию, чтобы мой реальный домен по умолчанию указывал на подпапку, а не перенаправлялся в подпапку. Это кажется немного смешным, но это сработало.
Вот статья справки GoDaddy, в которой объясняется этот процесс: http://community.godaddy.com/help/article/4067.
Выполнив действия, описанные в статье (обработка которых заняла чуть более 24 часов), я также смог удалить файл web.config, который я изначально поместил в корень.