2017-05-06 11 views
2

私はおそらく比較的簡単な質問ですが、自分のニーズに固有のものを見つけることができないので、間違ったことを探しているようです。私の文脈で私が見​​つけたものをうまく実装するための主題。AzureとPHPを使ったURLマッピング

私はマイクロソフトのAzure上でホストされているPHPのウェブサイトを持っており、現在、そのような明らかな

myazurehost.net/SomeService.php 

などのURLを介してアクセスすることができindex.phpを、About.php、SomeService.phpなど、など、いくつかのファイルを持っていますしかし、私は、2つの理由から、URLマッピングを操作できるようにしたいと思います。
まず 、そしてもっと重要なのは、私は、これは多くの滑らかな印象とより保守など

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

としてなど、個々のファイルを持つよりもなりますので

myazurehost.net/ServiceGroup/SomeService 

ようなディレクトリを構築できるようにしたいと思いますこれは明白な理由から望ましくない。

は、第二に、私は、ユーザーがURLに

myazurehost.net/SomeService 

を訪れたなら、彼らは、現在404などにつながる/ SomeServiceを訪問し、SomeService.phpのページを参照してくださいというようにディレクトリを変更できるようにしたいと思いますSomeServiceはSomeService.phpと同じではありません。

私はApacheの.htaccessシステムに相当するものを使用する必要があると信じていますが、間違いない限りAzureでは利用できません。

答えて

1

さて、Azure Web AppsはIISを使用してアプリケーションをホストしています。 Apacheの.htaccessシステムの最高の機能は、実際にはweb.configファイルを使用してIISでURLの書き換えを処理することです。

たとえば、次のweb.configファイルをWebアプリケーションのルートフォルダに入れて、.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> 
+0

これはいいですか?私はそれに一致するweb.configファイルを作成し、index.phpを除くすべてが見つからないことを意味しました。 – Potatosaurus

+0

私は ''タグを追加するために私の返信を更新しました。もう一度やり直してください。 –

関連する問題