Я не могу найти ответ на это, глядя на руководство для новичков в сети. Если бы кто-то мог мне помочь, я был бы очень благодарен.Как переписать исходящие ссылки в mod_rewrite?
Все, что я хочу сделать, это переписать ссылки (которые существуют в <a href>
тегах) на моей странице, которые выглядят так:
<a href="/mysite/products/product.cfm?id=1">/mysite/products/product.cfm?id=1</a>
в это:
<a href="/mysite/products/product/1">/mysite/products/product/1</a>
Все примеры, которые я могу найти в сети о правилах пересылки входящих сообщений, например разрешая дружественный URL-адрес в настоящий URL-адрес.
Но как превратить настоящий URL-адрес в поддельный URL-адрес на моей странице на лету? Я использую Helicon Ape, который в основном является Apache mod_rewrite в IIS 7.5. Я все еще должен поместить все свои правила в .htaccess
Если я использую модуль перезаписи URL-адреса IIS от Microsoft, он позволяет создавать правила «Исходящие», которые переписывают ссылки в вашей разметке HTML «на лету». Вот пример Outbound правила:
<rule name="Rewrite to clean URL" preCondition="IsHTML">
<match filterByTags="A" pattern="^/article\.aspx\?id=([0-9]+)$" />
<action type="Rewrite" value="/article/{R:1}" />
</rule>
Так что переписывать ссылку в <a>
тег, который выглядит как /article.aspx?id=1
и делает его в /article/1
Но что не переписывает ссылки на странице, я не думаю. Он будет перенаправляться только в том случае, если кто-то попытается получить доступ к уродливой ссылке. –
mod_rewrite не может пойти и изменить свой HTML-контент, он может изменять только URL-адреса, когда запросы поступают на веб-сервер. – anubhava
IIS Rewrite Module изменяет мой HTML-контент. Как еще я могу изменить все мои ссылки на дружественные ссылки? –