mod-rewrite URL Değiştir

3 Cevap php

Ben bir ayarı değişti zaman Gallery oynayan bir sorun vardı. Ancak, ben hata bir model var fark ettim:

The URLs look as such:
main.php/d/number/name.jpg

"number" is dynamic (ie "9496-2")
"name" is dynamic (ie "all+clad+7pc+b")

Her şey statik.

Ne yazık ki, ayar değişikliği yaptığınızda, daha sonra "9496-2" için "9495-2" değiştirildi "bir numara" bölümü.

Nasıl değişkeninin değeri "sayı" dan "1" çıkarabiliriz?

Teşekkürler gelişmiş!

Jeff

3 Cevap

Bu yapmak gerekir.

RewriteEngine On
RewriteBase /
RewriteRule ^photos/ebay/main.php/d/([0-9]*)6-([0-9]*)/(.*).jpg /photos/ebay/main.php/d/$1\5-$2/$3.jpg [QSA,L]

Ben size zaten var ama burada ek bir komut dosyası olmadan bir çözüm olduğunu söyledi biliyorum. (Ve ben aslında \ 5 çalışmalarını sağlamak için bu bir test).

Sen parçalar değişir hangi bir sabit URL'lerinizden hangi parçası söylemedi, ben de tahmin için gidiyorum:

RewriteEngine on
RewriteBase /
RewriteRule ^/photos/ebay/main.php/d/9496-2/(.*)$ /photos/ebay/main.php/d/9495-2/$1 [QSA,L]

Ayrıca müşterilere geri yönlendirme göndermek istiyorsanız R=301 bayraklar eklemek isteyebilirsiniz. (Olduğu gibi, bu sadece bir "iç yönlendirme" yapmalıyım)

İşte çalıştı çözümdür. Bu bir. Htaccess dosyası ve bir PHP komut dosyası kullanarak çıkıyor.

.htaccess file:
Create the ".htaccess" file with the below content:

RewriteEngine On
RewriteBase /

# Redirect to PHP Script
RewriteRule ^main.php/d/([0-9]*)-([0-9])/(.*)$ scriptName.php?v1=$1&v2=$2&v3=$3 [R=301,QSA,L]

PHP Script:
Create the "scriptName.php", then add in your logic. In my case, I needed to subtract "1" from v1.

NOTE: make sure the .htaccess and PHP script are in the same path.