Doğru Cevap
-
RewriteCond %{REQUEST_URI} ^/uploads/[^.]+$ [NC]
RewriteRule ^uploads/(.*)$ thumb.php?p=$1
İlk satır, ikinci satırdaki kuralın hangi şart sağlanıyorsa işletileceğini belirtir.
İlk satırda ki şart şu: /uploads/ yazdıktan sonra nokta kullanılmadan başka şeyler de yazılmışsa
Dolayısıyla, dosya uzantısı yazılmamışsa aşağıdaki kural işletilir ve yönlendirme yapılır.
Cevaplar
-
ilgin için teşekkürler.
öncelikler ben sorunumu farklı bir yolla çözdüm ama buşekilde bir çözüm daha iyi
yalnız benim isteklerde noktada olacak.
şöyleki
uploads/deneme.jpg-650
genelde isteklerim bu şekilde buradaki 650 istenilen resmin width değeri bu istek php ye yönlenip 650 width ebatında yeni bir resim oluşturacak.uploads/deneme.jpg
şeklinde olduğunda ise bir yönlendirme yapılmadan dosyaya gidilecek.
senin kodu şu şekilde düzenlesekRewriteCond %{REQUEST_URI} ^/uploads/[^-]+$ [NC] RewriteRule ^uploads/(.*)$ thumb.php?p=$1
yani istekte düz çizgi yoksa desek bi sorun yaratmaz heralde değilmi.?-
sinanilyas
Bu durumda şöyle yazmanız daha mantıklı gibi:
RewriteCond %{REQUEST_URI} ^/uploads/.+\..+-\d+$ [NC] RewriteRule ^uploads/(.+)-(\d+)$ thumb.php?p=$1&w=$2
İlk satırda diyor ki, /uploads/ 'den sonraki kısmın içinde - geçiyorsa (- işaretinden sonraki kısım rakamlardan oluşmalı) aşağıdaki kuralı işlet.
İkinci satırda da diyor ki, /uploads/ ile - arasındaki kısım $1 olsun, - işaretinden sonraki kısım da $2 olsun, bu durumda thumb.php?p=$1&w=$2 sayfasını göster. Yani burada dosya adı ve genişlik otomatik olarak ayrılıp thumbs.php'ye öyle gönderiliyor. PHP dosyasında ayrıca parse etmeye gerek kalmıyor.11 yıl önce yazılmış -
freefox
Bu yaptım ama şöyle bir hata alıyorumThe requested URL /asya/uploads/st_6337_34705_1725.jpg-650 was not found on this server.
isteğin sonundaki -650 yi kaldırınca direk resme yönleniyor burada sıkıntı yok.
ama -650 eklediğimde hata alıyorum . neden olabilir acaba11 yıl önce yazılmış -
sinanilyas
Soruda verdiğiniz URL ile burada kullandığınız URL farklı ama. /uploads'dan önce başka şeyler de varsa url'de onu da belirtmek lazım. sizin durumda şöyle demeniz lazım:
RewriteCond %{REQUEST_URI} ^/asya/uploads/.+\..+-\d+$ [NC] RewriteRule ^/asya/uploads/(.+)-(\d+)$ thumb.php?p=$1&w=$2
Ya da /uploads'tan önce ne geleceği sabit değilse;
RewriteCond %{REQUEST_URI} ^.*/uploads/.+\..+-\d+$ [NC] RewriteRule ^.*/uploads/(.+)-(\d+)$ thumb.php?p=$1&w=$2
11 yıl önce yazılmış -
freefox
hala aynı hatayı alıyorum
eminim burada küçük bir nüans var ama o nedir bilemiyorum.
kullandığım .htaccess şu halde<ifmodule mod_expires.c> <filesmatch "\.(jpg|gif|png|css|js|php)$"> ExpiresActive on ExpiresDefault "A2419200" Header set Cache-Control "max-age=604800" </filesmatch> </ifmodule> RewriteEngine On RewriteCond %{REQUEST_URI} ^.*/uploads/.+\..+-\d+$ [NC] RewriteRule ^.*/uploads/(.+)-(\d+)$ thumb.php?p=$1&w=$2 RewriteRule ^include/(.*).js$ jss.php?s=$1
tüm satırları kaldırıpsadece senin gönderdiğinide denedim aynı hatayı alıyorum.
uploads/ dan önceki kısım sabit olmayacak.11 yıl önce yazılmış -
sinanilyas
Ufak bir değişiklik yaptım, bende şu şekilde çalışıyor:
RewriteCond %{REQUEST_URI} uploads/.+\..+-\d+$ [NC] RewriteRule uploads/(.+)-(\d+)$ /thumb.php?p=$1&w=$2
http://localhost/uploads/deneme.jpg-450
dediğimde bunu şu şekle çeviriyor:
http://localhost/thumb.php?p=deneme.jpg&w=450
Yönlendirme yapılıp yapılmadığını anlamak için ikinci satırın sonuna bir boşluk koyup, sonra [R=301] yazabilirsin.
Burada /thumb.php yazdığım için thumb.php'yi ana klasörde arıyor. thumb.php neredeyse yolu ona göre verebilirsin.11 yıl önce yazılmış -
freefox
ana klasöre gitmeyi kaldırdım . çünküm kök dizinde çalışmasını istemiyordum.
sorunum çözüldü eywallah teşekkür ederim11 yıl önce yazılmış -
sinanilyas
Rica ederim, iyi çalışmalar.11 yıl önce yazılmış
-