На сайте моей компании есть каталог http://website.net/files у которого есть неясные данные, которые использует половина компании. Он не соответствует нашей новой структуре сайта, и я хотел бы переместить его на новый сервер с DNS http://files.website.net. У меня проблема в том, что у многих пользователей по-прежнему будут ссылки, похожие на http://website.net/file/app.exe
Мне сказали, что перезапись URL-адреса - лучший вариант для принудительного перенаправления при сохранении запроса, но мне, кажется, что-то не хватает. Любая помощь будет оценена.
web.config
<?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>
<rule name="files" stopProcessing="true">
<match url="^files/(.*)" ignoreCase="true" />
<action type="Redirect" url="http://downloads.openeye.net/files/{R:1}" logRewrittenUrl="true" />
</rule>
</rules>
</rewrite>
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="/index.php?error=404" responseMode="ExecuteURL" />
</httpErrors>
</system.webServer>
</configuration>
На вашем скриншоте несколько проблем:
Шаблон регулярного выражения, который у вас есть в поле Pattern, будет соответствовать только числам после последней косой черты в URL-адресе. "files / subdir / 1234" будет соответствовать. "files / subdir / app.exe" не будет совпадать. Тебе нужно ^files/([_0-9a-z-]+)/(.*)
в поле шаблона. Или, если все, что вам нужно, это что-нибудь с / files, вы можете использовать ^files/(.*)
. Функция Test Pattern - ваш друг.
Я бы поставил флажок «Игнорировать случай», но это зависит от вашего конкретного сценария.
Тип действия должен быть «Перенаправление».
Предполагая, что вы используете ^files/(.*)
для вашего шаблона регулярного выражения URL-адрес перенаправления должен быть: http://downloads.openeye.net/files/{R:1}
Это будет означать, что кто-то, кто входит http://yourdomain.com/files/whatever.exe будет перенаправлен на http://downloads.openeye.net/files/whatever.exe
Или если у них более длинный URL, например http://yourdomain.com/files/dir1/dir2/whatever.exe, он по-прежнему будет прикреплен к концу нового URL-адреса (http://downloads.openeye.net/files/dir1/dir2/whatever.exe).