[РЕДАКТИРОВАТЬ] Хорошо, так что для того, что вы просите ... насколько я знаю, вам нужно создать определенное правило перезаписи для каждой страницы.Я больше думал о MVC, где, когда вы переходите на:
/ news
, он направляется к
/ default.aspx
, которыйвызывает NewsController.Index и отображает страницу новостей из default.aspx.Тем не менее, чтобы фактически разбить все на отдельные страницы и просто попытаться удалить расширение ... насколько я знаю, вам нужно создать новое правило для каждого экземпляра.
Правила перенаправления можно настроить изфайлы web.config.
Например, вот что 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>
Маршрутизирует ВСЕ трафик на страницу index.php.Затем файл index.php считывает, что такое URL, и выдает данные на основе URL.Он не перенаправляет его на другую страницу после перенаправления, он, скорее, решает, какой контент отображать.
MVC работает по принципу, вы видите этот URL:
/news > will call > NewsController.Index();
/news/index > will call > NewsController.Index();
/news/view > will call > NewsController.View();
/news/read/id > will call > NewsController.Read(id);
Эти контроллеры, как правило, получают данные из базы данных и применяют эти данные к «представлению» (html-странице, которая находится где-то на сервере с переменными для отображения данных, которые ему передает контроллер).