2017-05-06 30 views
2

Ich habe, was wahrscheinlich ist eine relativ einfache Frage, aber ich scheine die falschen Dinge gesucht werden, da ich nicht in der Lage gewesen, etwas Bestimmtes auf meine Bedürfnisse zu finden, und ich bin nicht erfahren genug, mit der Thema, um das, was ich in meinem Kontext gefunden habe, erfolgreich umzusetzen.URL-Mapping mit Azure und PHP

Ich habe eine PHP-Website auf Microsoft Azure gehostet und haben derzeit mehrere Dateien wie Index.php, about.php, SomeService.php usw., die offensichtlich durch URLs wie

zugegriffen werden kann
myazurehost.net/SomeService.php 

Allerdings möchte ich aus zwei Gründen die URL-Zuordnung manipulieren können.
Erstens und was noch wichtiger ist, würde Ich mag Lage sein, Verzeichnisse zu erstellen, wie

myazurehost.net/ServiceGroup/SomeService 

Da dies viel sauberer sein würde und mehr wartbar als einzelne Dateien mit wie

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

Wie Dies ist aus offensichtlichen Gründen unerwünscht.

Zweitens würde Ich mag Lage sein, das Verzeichnis zu ändern, so dass, wenn ein Benutzer die URL besucht

myazurehost.net/SomeService 

Sie die Seite von SomeService.php zu sehen, wie sie derzeit besuchen/Someservice in einem 404 führen würde als SomeService ist nicht identisch mit SomeService.php.

Ich glaube, ich muss ein Äquivalent von Apache .htaccess-System verwenden, aber wenn ich nicht alles täuscht dies unter Azure nicht verfügbar ist.

Antwort

1

Nun, Azure Web Apps verwenden IIS Ihre Anwendung zu hosten. Das beste Äquivalent von Apache .htaccess System verwendet tatsächlich web.config Datei, um URL-Rewrite in IIS zu behandeln.

Zum Beispiel können Sie einfach die folgende Datei web.config in den Stammordner Ihrer Webanwendung einfügen, um die Erweiterung .php zu verbergen. Weitere Informationen finden Sie unter 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> 
+0

Soll das gut gehen? Ich habe eine web.config-Datei erstellt, die dem entspricht und es bedeutet, dass alles außer index.php nicht gefunden wurde. – Potatosaurus

+0

Ich habe meine Antwort zum Hinzufügen des '' Tags aktualisiert. Bitte versuchen Sie es erneut. –