.htaccess — сопоставление URL с помощью Azure и переполнение стека

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

У меня есть веб-сайт PHP, размещенный в Microsoft Azure, и в настоящее время у меня есть несколько файлов, таких как Index.php, About.php, SomeService.php и т. Д., К которым, очевидно, можно получить доступ через URL-адреса, такие как

myazurehost.net/SomeService.php

Однако я хотел бы иметь возможность манипулировать отображением URL по двум причинам.
Во-первых, и что более важно, я хотел бы иметь возможность создавать каталоги, такие как

myazurehost.net/ServiceGroup/SomeService

Так как это было бы намного аккуратнее и проще в обслуживании, чем наличие отдельных файлов, таких как

myazurehost.net/SomeService.php
myazurehost.net/AnotherService.php

Как это нежелательно по понятным причинам.

Во-вторых, я хотел бы иметь возможность изменить каталог так, что если пользователь посещает URL

myazurehost.net/SomeService

Они видят страницу SomeService.php, так как в настоящее время посещение / SomeService приведет к 404, поскольку SomeService отличается от SomeService.php.

Я считаю, что мне нужно будет использовать эквивалент системы Apache .htaccess, однако, если я не ошибаюсь, это недоступно в Azure.

2

Решение

Хорошо, веб-приложения Azure используют IIS для размещения вашего приложения. Лучший эквивалент Apache’s .htaccess Система на самом деле использует web.config файл для обработки перезаписи URL в IIS.

Например, вы можете просто поставить следующее web.config файл в корневую папку вашего веб-приложения, чтобы скрыть расширение .php. Для получения дополнительной информации, пожалуйста, обратитесь к https://www.saotn.org/iis-url-rewrite-hide-php-extension.

<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="hide .php extension" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="{R:1}.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector