Forum

Bildirimler
Hepsini Temizle

IIS cgi üzerinde PHP rewrite yapma sorunu !!!

5 Yazılar
2 Üyeler
0 Reactions
1,360 Görüntüleme
(@OguzhanKeten)
Gönderiler: 36
Trusted Member
Konu başlatıcı
 
Merhaba, apache serverda olan rewrite özelliğini  ben iis cgi kullanarak yapmak istiyorum.Fakat sitede menülere tıkladığımda 404 hatası alıyorum.
Aşağıdaki gibi .htaccess içerisindeki kodlar mevcut.IIS üzerinde yada php.ini dosyasında nasıl bir ayar yapmam gerekiyor?
 
RewriteEngine on
# ÜRÜNLER
 RewriteRule ^/?urunler/(.*)/(.*)$ ./products.php?kategori=$1&urun=$2&%{QUERY_STRING} [L]
 
 
Gönderildi : 14/12/2011 16:44

(@huseyinsevin)
Gönderiler: 821
Prominent Member
 

Web.config e aşağıdaki kodu yaz... URL Rewriting yüklü ve gerekli IIS bileşenleride yüklü olsun... Bu arada IIS sürümün ne?

 

http://www.iis.net/download/URLRewrite yüklü değilse burdan indirip yükleyebilirsin.

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^urunler/(.*)/(.*)$" ignoreCase="false" />
                    <action type="Rewrite" url="./products.php?kategori={R:1}&amp;urun={R:2}&amp;{QUERY_STRING}" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
 

 
Gönderildi : 14/12/2011 16:56

(@OguzhanKeten)
Gönderiler: 36
Trusted Member
Konu başlatıcı
 

IIS 7.5 sürümü kullanıyorum.

 
Gönderildi : 14/12/2011 17:07

(@OguzhanKeten)
Gönderiler: 36
Trusted Member
Konu başlatıcı
 

Hüseyin hocam verdiğiniz cevapla sorunu hallettim.Birde .httcaccess dosyasında RewriteCond olan kısımla nasıl bir düzenleme yaparım?

# DİĞER

# Bulunamayan dosya ya da klasörlerde "sayfa bulunamadı" ekranına yönlendirme

 RewriteCond %{REQUEST_FILENAME} !-f

 RewriteCond %{REQUEST_FILENAME} !-d

 RewriteRule ^/?(.*)$ ./err404.php?url=$1 [L] 

 
Gönderildi : 14/12/2011 17:40

(@huseyinsevin)
Gönderiler: 821
Prominent Member
 

O zaman web.config i tekrar şu şekilde düzenle.... Öncekilerini sil ve bunları kullan.

 

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^urunler/(.*)/(.*)$" ignoreCase="false" />
                    <action type="Rewrite" url="./products.php?kategori={R:1}&amp;urun={R:2}&amp;{QUERY_STRING}" appendQueryString="false" />
                </rule>
                <rule name="Imported Rule 2" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="./err404.php?url={R:1}" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
 

 
Gönderildi : 14/12/2011 17:58

Paylaş: