PHP, URL Htaccess ile yeniden ve Microsoft IIS URL Yeniden Yazma

4 Cevap php

Ben Apache sunucular ile çalışmaya alışkınım, yani mod_rewrite etkin olduğunda, ben bir htaccess dosyası oluşturun ve URL yeniden kullanabilirsiniz.

İşte benim htaccess dosyası bulunuyor:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Şimdi modülü yeniden bu URL'yi kullanan bu siteyi inşa ettik ama bir Microsoft sunucu olduğunu öğrenmek için geldim. Benim htaccess dosyasını kullanabilir miyim? Ben işe almak için değiştirmeniz gereken bir şey var mı? URL yeniden Microsoft sunucu üzerinde kurulmuş olup olmadığını nasıl anlayabilirim?

4 Cevap

Sen Ionic's Isapi Rewrite Filter (IIRF) olarak, olduğu gibi kendi yapılandırma kullanabilirsiniz.

IIRF ücretsiz, açık kaynak kodlu.

Eğer IIS 7 kullanıyorsanız o zaman sahip IIS, URL Rewrite Modülü, kullanabileceğiniz bir "Import Rules" feature bu IIS URL yeniden yazma biçimine mod_rewrite kuralları çevirmek için kullanılabilir. RewriteCond "-s" kullanır ve istenen URL olmayan bir boyutu sıfır veya dosyaya bir dosya sistemi üzerinde bir sembolik bağlantı tekabül kontrol "-l" bayraklar, çünkü bu özellikle yeniden yazma kuralları çevirmek olmaz. Uygulama herhangi bir sembolik bağlantıları kullanabilirsiniz değilse o zaman güvenle bu koşulları değiştirebilirsiniz:

RewriteCond %{REQUEST_FILENAME} -f [OR]

ve sonra IIS URL Rewrite arabirimini kullanarak kuralları dönüştürmek. Yani bu kurallara neden olur:

<rewrite>
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="^.*$" />
      <conditions logicalGrouping="MatchAny">
        <add input="{REQUEST_FILENAME}" matchType="IsFile"  />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory"  />
      </conditions>
      <action type="None" />
    </rule>
    <rule name="Imported Rule 2" stopProcessing="true">
      <match url="^.*$" />
      <action type="Rewrite" url="index.php" />
    </rule>
  </rules>
</rewrite>

. Htaccess dosyası Apache yapılandırmasına son kullanıcı erişimi sağlamak için bir Apache kongre, bu nedenle bir IIS (Microsoft) sunucusu yerine bir düşüş olarak kullanmak mümkün olacak değiliz. Sen would Windows üzerinde Apache çalıştıran olsaydı kullanmak mümkün olacak.

IIS7 bir URL rewriting module URL'leri yeniden desteği sunuyor vardır. IIS önceki sürümleri için aynı işi yapar ISAPI_Rewrite ürün de var. Büyük olasılıkla bu modüllerin ya (yani, hiçbir htaccess benzeri mekanizma) kullanmak için sunucu üzerinde yönetimsel izinler bazı düzeyine gerekir

ISAPI_Rewrite 3 veya Helicon Ape ürünlerinde olduğu gibi size yukarıdaki yapılandırma kullanabilirsiniz.