lostyazilim
tr.link

Htacces dosyasında regex kodu sorunu

7 Mesajlar 850 Okunma
lstbozum
tr.link

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Selamlar arkadaşlar...
Yaptığım sitedeki linkleri kullanıcı dostu haline getirmiştim ("siteadi.com/index.php?konu=123" yerine "siteadi.com/123" gibi). Şimdi de dil dosyası ekledim siteye ama nedense linkin devamına eklenen ?lang=en kısmını site algılamıyor. Sebebi ne olabilir?

.htacces dosyamdaki kısım;
RewriteRule ^profil/([0-9a-zA-Z-_]+)(/?)$ index.php?d=profil&link=$1

Bu yukarıdaki kod ile "siteadi.com/profil/mehmet/" olarak başarılı bir şekilde sayfa yükleniyor ama ben buna "siteadi.com/profil/mehmet/?lang=en" şeklinde "lang" etiketini eklediğim zaman nedense bu kısmı hiç görmüyor.

Lang etiketini ?lang=en şeklinde eklemek istiyorum.
 

 

wmaraci
reklam

alperi alperi alperperi.com Kullanıcı
  • Üyelik 23.11.2016
  • Yaş/Cinsiyet 42 / E
  • Meslek Bilgiişlem
  • Konum Konya
  • Ad Soyad A** P**
  • Mesajlar 642
  • Beğeniler 216 / 215
  • Ticaret 4, (%100)
RewriteEngine on
RewriteBase /

RewriteRule ^(en|de|tr)/(.*) /index.php?l=$1&p=$2 [QSA,L]


ya da

RewriteRule ^[a-zA-Z][a-zA-Z]/index.html$ index.html?language=$1 RewriteRule ^index.html$ /index.php [L]

örnekleri gibi çözüm geliştirebilirsin.
mehmet01

kişi bu mesajı beğendi.

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Pc'yi kapattığım için denemesi yarına kaldı ama açılçası verdiğiniz iki kodu da anlayamadım. Biraz daha açıklayıcı veya benim kodlara benzer bir şekilde yazmanız mümkün mü?
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)

alperi adlı üyeden alıntı

RewriteEngine on
RewriteBase /

RewriteRule ^(en|de|tr)/(.*) /index.php?l=$1&p=$2 [QSA,L]


ya da

RewriteRule ^[a-zA-Z][a-zA-Z]/index.html$ index.html?language=$1 RewriteRule ^index.html$ /index.php [L]

örnekleri gibi çözüm geliştirebilirsin.


Malesef yapamadım. Yine de teşekkür ederim.


Anlayabileceğim veya farklı bir şekilde çözebilecek bir arkadaş varsa konu hala günceldir...
 

 

wmaraci
wmaraci

alperi alperi alperperi.com Kullanıcı
  • Üyelik 23.11.2016
  • Yaş/Cinsiyet 42 / E
  • Meslek Bilgiişlem
  • Konum Konya
  • Ad Soyad A** P**
  • Mesajlar 642
  • Beğeniler 216 / 215
  • Ticaret 4, (%100)
RewriteEngine On

RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^$ http://siteadi.com/en/ [L,R=301]

RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^$ http://siteadi.com/de/ [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^(en|de)/?$ index.php?lang=$1 [QSA,NC,L]


şu şekilde denermisin
mehmet01

kişi bu mesajı beğendi.

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Yok olmuyor hocam. Kendim de baya araştırıyorum kaç gündür. Denemeler yapıyorum fırsat buldukça ama olmuyor.
"siteadi.com/profil/mehmet/en" şeklinde yapabiliyorum. Ama bu arama motoru gözünde kopya sayfa olur diye düşünüyorum. Bu yüzden "siteadi.com/profil/mehmet/?lang=en" şeklinde yaparsam sanki daha iyi olacak.

RewriteRule ^profil/([0-9a-zA-Z-_]+)/?lang=(en|tr)(/?)$ index.php?d=profil&link=$1&lang=$2

Şu regex kodunda koyu olarak yazdığım yer nasıl olacak çözemiyorum. .../?lang=(en|tr) yapıyorum ama soru işaretinin anlamı farklı diye çalışmıyor sanırım.
Bu yüzden .../[?]lang=(en|tr) veya .../[\?]lang=(en|tr) şeklinde de denedim yine olmadı. 'Soru işareti' ve 'eşittir'i nasıl işlevsiz hale getirip karakter gibi gösterebilirim?
 

 

mehmet01 mehmet01 WM Aracı Kullanıcı
  • Üyelik 12.03.2013
  • Yaş/Cinsiyet 32 / E
  • Meslek ...
  • Konum Adana
  • Ad Soyad M** Ç**
  • Mesajlar 665
  • Beğeniler 329 / 328
  • Ticaret 1, (%100)
Tamam nihayet buldum. Birilerine lazım olur diye yazayım buraya da. Meğer htaccess'deki kodların sonuna sadece [QSA] koyunca oluyormuş.

RewriteRule ^profil/([0-9a-zA-Z-_]+)(/?)$ index.php?d=profil&link=$1 [QSA] şeklinde.
Yani artık siteadi.com/profil/ahmet?lang=en şeklinde yazabilirim. Hatta devamına başka şeyler de yazabilirim istediğim kadar.

[QSA], linkin devamında ?lang=en gibi başka etiketler varsa onları da sisteme gönder anlamına geliyormuş.
Geriye kalan şey PHP üzerinden bu lang=en kısmını GET ile alıp ona göre işlem yapmak.

Tekrar teşekkür ederim alperi . Senden başka kimse yardımcı olmaya çalışmadı zaten. Verdiğin kodlardaki harfleri bi araştırayım dedim en son, oradan buldum. Teşekkürler... :)
alperi

kişi bu mesajı beğendi.

wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al