web.config переписать URL-адрес подкаталога - PullRequest
0 голосов
/ 31 мая 2018

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

index.html
name-folder(folder)
name.html
   name2.html
   name3.html
     second-folder(folder)
     second.html
       second2.html
       second2.html

, поскольку имя папки и page.html совпадают, сервер не будет отображать страницу, если я неНе меняйте имя папки.

, но мой клиент хочет, чтобы URL-адрес был таким же, как и раньше, поэтому я попытался использовать web.config для перезаписи правил URL-адресов, получил первый каталог, но второй подкаталог все еще не работает.

пример: www.yourdomain.com/name-folder/name2 www.yourdomain.com/name/name2 (<--- эта работа) </p>

для подкаталога www.yourdomain.com/name-folder/second-folder/second (это обычный URL) www.yourdomain.com/name-folder/second/second2 (<- когда я удаляю второе имя "-folder" в работе URL, но если я удалю первую «-folder» не будет работать) </p>

www.yourdomain.com/name/second/second2 (<---that's what I need, but it's not working currently.)

Мне нужно удалить все папки с именем «-folder» для совпадения со старым URL.

Вот мой web.config. Я попытался удалить перезапись имени папки подкаталога:

<!-- remove "-folder"in the child directory URL -->
<rule name="removesubfoldername" enabled="true" stopProcessing="true">
<match url="(.*)\/(.*)\/(.*)" negate="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
<add input="{URL}" pattern="(.*)\.(.*)\.(.*)" negate="true" />
</conditions>
<action type="Rewrite" url="\/{R:1}-folder\/{R:1}-folder\{R:2}" />
</rule>
<!--         end of re-write folder name -->

извините за все тОн в замешательстве, большое спасибо за помощь!Спасибо!

1 Ответ

0 голосов
/ 04 июня 2018

Вот рабочий web.config, который успешно удалил имя «-folder» из моей папки.

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
    <rule name="extensionless" stopProcessing="true">
          <match url="(.*)\.html$" />
          <action type="Redirect" url="{R:1}" redirectType="Permanent" />
    </rule>
    <rule name="removeextension" enabled="true">
        <match url=".*" negate="false" />
    <conditions>
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    <add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
    </conditions>
    <action type="Rewrite" url="{R:0}.html" />
    </rule>
<!-- remove sub sub "-folder"in the child directory URL -->
    <rule name="removesubfoldername" enabled="true" stopProcessing="true">
    <match url="(.*)\/(.*)\/(.*)" negate="false" />
    <conditions>
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    <add input="{URL}" pattern="(.*)\.(.*)\.(.*)" negate="true" />
    </conditions>
      <action type="Rewrite" url="{R:1}-folder\/{R:2}-folder\/{R:3}" />
     </rule>
     <!--         end of re-write folder name -->
<!-- remove "-folder"in the child directory URL -->
    <rule name="removefoldername" enabled="true" stopProcessing="true">
    <match url="(.*)\/(.*)" negate="false" />
    <conditions>
    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
    <add input="{URL}" pattern="(.*)\.(.*)" negate="true" />
    </conditions>
    <action type="Rewrite" url="{R:1}-folder\/{R:2}" />
    </rule>

<!--         end of re-write folder name -->
</rules>
</rewrite>
</system.webServer>
</configuration>
...