301 Kalıcı Olarak Taşındı durumuna sahip bir HTTP durum kodu, istenen belgenin Konum başlığı alanında belirtilen yeni URI'ye kalıcı olarak taşındığını gösterir.
Bu ne için?
Öncelikle sitenin alan adı değiştirilirken site adresindeki değişikliğin arama motorlarına bildirilmesi gerekmektedir. İkincisi, site adını www ile ve onsuz yapıştırmak için. Üçüncüsü, Page Rank'ı yeni bir siteye hızlı bir şekilde aktarmak.
PHP
Birinci yöntem
İkinci yöntem
Perl
Birinci yöntem
$cgi = yeni CGI; print $cgi->redirect("http://www.example.com/");
İkinci yöntem
#!/usr/bin/perl -w katı kullanın; print "Durum: 301 Kalıcı Olarak Taşındı\n"; "Konum: http://www.example.com/\n\n" yazdır; çıkış;
ASP.NET
Birinci yöntem
İkinci yöntem (sürüm 4.0'dan)
RedirectPermanent("http://www.example.com");
A.S.P.
<%@ Language=VBScript %> <% Response.Status="301 Moved Permanently" Response.AddHeader "Location", "http://www.example.com/" response.end %>raylar üzerinde yakut
def do_something headers["Status"] = "301 Kalıcı Olarak Taşındı" redirect_to "http://www.example.com/" endsoğuk füzyon
<.cfheader statuscode="301" statustext="Moved Permanently"> <.cfheader name="Location" value="http://www.example.com">Java (JSP)
<% response.setStatus(301); response.setHeader("Location", "http://www.example.com"); response.setHeader("Connection", "close"); %>Apache Web Sunucusu (.htaccess)
Birinci yöntem (mod_alias, Yönlendirme)
Yönlendirme 301 / http://www.example.com
İkinci yöntem (mod_alias, RedirectPermanent)
Yönlendirme Kalıcı / http://www.example.com
Üçüncü yöntem (mod_alias, Kalıcı yönlendirme)
Kalıcı yönlendirme / http://www.example.com
Dördüncü yöntem (mod_alias, RedirectMatch)
RedirectMatch 301 ^(.*)$ http://www.example.com/
Beşinci yöntem (mod_rewrite)
Seçenekler +FollowSymLinks RewriteBase'de RewriteEngine / RewriteRule ^(.*)$ http://www.example.com/$1
6.1KBir sayfayı ziyaret eden kullanıcıların https://example.com/initial.php https://example.com/final.php sayfası görüntülendi. Bu PHP , JavaScript ve HTML'de çeşitli yöntemler kullanılarak yapılabilir . Bu yazıda PHP'yi başka bir sayfaya yönlendirmek için kullanabileceğiniz yöntemlerin her birini ele alacağız.
İşte kullanacağımız birkaç değişken:
Bir URL'yi Yeniden Yönlendirmek için PHP header() İşlevini Kullanma
initial.php'den final.php'ye bir yönlendirme eklemek istiyorsanız, aşağıdaki kodu initial.php web sayfasına koyabilirsiniz. Tarayıcıya yeni bir konum başlığı gönderir:
Burada bir yönlendirme oluşturmak için PHP'nin header() işlevini kullanıyoruz. Bu kodu herhangi bir HTML veya metinden önce yerleştirmeniz gerekir. Aksi takdirde, başlığın zaten gönderildiğine dair bir hata alırsınız. Başlıkları gönderirken bu hatayı önlemek için çıktı arabelleğe almayı da kullanabilirsiniz. Aşağıdaki örnek, bu PHP yönlendirmesini çalışırken göstermektedir:
header() işlevini kullanarak yeniden yönlendirmek için ob_start() işlevi PHP betiğinde önce gelmelidir. Bu, başlık hatalarının oluşmasını önleyecektir.
Ek bir önlem olarak, web sayfası kodunun geri kalanının yürütülmemesi için başlık yönlendirmesinden hemen sonra die() veya exit() ekleyebilirsiniz. Bazı durumlarda, tarayıcılar veya tarayıcılar Konum başlığındaki göstergeye dikkat etmeyebilir. Sitenin güvenliğine yönelik potansiyel tehditlerle dolu olan:
Açık olmak gerekirse: die() veya çıkış()'ın yönlendirmelerle hiçbir ilgisi yoktur. Web sayfasındaki kodun geri kalanının yürütülmesini önlemek için kullanılırlar.
PHP bir sayfaya yönlendirme yaptığında, Location başlığının değeri belirtilirken mutlak URL'lerin kullanılması tavsiye edilir. Ancak göreceli URL'ler de işe yarayacaktır. Bu özelliği, kullanıcıları harici sitelere veya web sayfalarına yönlendirmek için de kullanabilirsiniz.
PHP'nin echo() işleviyle JavaScript yönlendirme kodunun çıktısı
Bu saf bir PHP çözümü değil. Ancak aynı zamanda etkilidir. Yönlendirmeyi işleyecek JavaScript kodunun çıktısını almak için PHP echo() işlevini kullanabilirsiniz.
Bu çözümü kullanırsanız, çıktı arabelleğe almayı kullanmak zorunda kalmazsınız. Bu ayrıca başlık göndermeyle ilgili hataları da önler.
Aşağıda, geçerli sayfadan diğerine yönlendirmek için farklı JavaScript yöntemlerini kullanan birkaç örnek verilmiştir:
self.location="https://example.com/final.php";"; Eko ""; Eko ""; Eko ""; ?>
Başka bir PHP sitesine yeniden yönlendirme yönteminin tek dezavantajı JavaScript'in istemci tarafında çalışmasıdır. Ve ziyaretçilerinizin JavaScript'i devre dışı bırakılmış olabilir.
Yönlendirmeler için HTML meta etiketlerini kullanma
Yönlendirmeyi gerçekleştirmek için temel HTML'yi de kullanabilirsiniz. Profesyonelce gelmeyebilir, ancak işe yarıyor. Ayrıca tarayıcıda JavaScript'in devre dışı bırakılması veya daha önce bir başlık hatası gönderilmesi konusunda endişelenmenize gerek yok:
Sayfayı her " otomatik olarak yenilemek için önceki örnekteki son satırı da kullanabilirsiniz. n» saniye. Örneğin, aşağıdaki kod her 8 saniyede bir sayfayı otomatik olarak yenileyecektir.
Site kurarken oldukça önemli bir nokta. Yanlış yapılandırılmış bir yönlendirme, sitenin arama sonuçlarına ciddi şekilde zarar verebilir. Permanent Redirect 301 kullanmanız gereken en yaygın durumlar:
- Web sitesi adresi değişikliği- alanınızı satın aldınız ve site.example.com'dan site.ru'ya taşınmaya karar verdiniz
- Aynaları yapıştırma - siteniz www.site.ru ve site.ru adresinde mevcutsa, arama motorları onu iki farklı site olarak görebilir, bu nedenle önce ana aynaya (www ile veya www olmadan) karar vermeniz ve yönlendirmeleri ayarlamanız gerekir. ana aynaya.
- Bir sayfa (bir veya daha fazla) adresini değiştirdiğinde- bir noktada http://example.com/index.php?option=com_content&task=view&id=23&Itemid=1 adreslerinin iyi olmadığı ve adreslerinin şu şekilde değiştirilmeleri gerektiği anlaşıldı. http://example.com/sport/news12, ancak arama motorlarının dizinindeki konumları kaybetmek üzücü (çünkü bu onlar için yeni bir makale olacak).
- Yinelenen sayfalarla başa çıkmanın başka bir yolu
Önemli: Sayfa geçici olarak taşınmışsa, 302 Geçici Olarak Taşındı'yı kullanın. Bu durumda sayfa birleştirme gerçekleşmez ve yönlendirmeli sayfa her zaman geri yüklenebilir.
Apache için Kalıcı Yönlendirme 301 (.htaccess)
Kuralları satırlardan hemen sonra eklemeniz gerekir:
RewriteBase'de RewriteEngine / # sunucu kökünden site köküne kadar tam yolu kesmek için
kuralların kendisi normal ifadeler kullanılarak belirtilir, sözdizimini hatırlayın:
- Bir desende karakter gruplarını veya "etiketleri" belirtmek için meta karakterler:
- ^ - satır başlangıç işareti,
- $ - satır sonu işaretçisi,
- ! - inkar,
- \ - eğik çizgiden kaçmak, aşağıdaki meta karakteri normal bir karakter olarak düşünmenize izin verir,
- . - nokta, herhangi bir karakteri belirtir, ancak yalnızca birini,
- () - gruplama.
- Değiştiriciler, normal karakterlerden, meta karakterlerden veya bunların gruplarından sonra yerleştirilir:
- ? - karakter 0 veya 1 kez tekrarlanır,
- * - 0'dan 65536'ya kadar tekrar eder,
- + - 1'den 65536'ya kadar tekrar eder.
- Bayraklar, bu kural için ek seçenekleri tanımlar:
- NC - (nocase) büyük/küçük harf kontrolünü devre dışı bırakır.
- R - (yönlendirme) dönüştürme işlemini durdurur ve sonucu, verilen sayfaya yönlendirme olarak istemci tarayıcısına döndürür (302, TAŞINMIŞ GEÇİCİ).
Bu bayrakla, farklı bir sonuç kodu belirtebilirsiniz, örneğin R=301, 301 (KALICI OLARAK TAŞINDI) koduyla bir yönlendirme döndürür. Tahmin edebileceğiniz gibi, tam da ihtiyacımız olan şey bu. - L - (son) dönüştürme işlemini durdurur ve mevcut bağlantı nihai olarak kabul edilir.
En yaygın durumları düşünün:
RewriteCond %(HTTP_HOST) ^www\.(.*) RewriteRule ^(.*)$ http://%1/$1 RewriteCond, eşleştirilirse RewriteRule'u yürütecek bir koşulu belirtir.index.php'den (html) ana sayfaya yönlendirme
RewriteCond %(THE_REQUEST) ^(3,9)\ /index\.(php|html|htm)\ HTTP/ RewriteRule ^(.*)index\.(php|html|htm)$ $1Site yapısını değiştirirken yönlendir
RewriteRule ^post/category/(.*)$ blog/category/$1 RewriteRule ^post/(.*)$ blog/post/$1PHP'de Kalıcı Yönlendirme 301
Tarayıcıya, istediği sayfadan http://site.ru adresine yönlendirme yapması gerektiğini söylemek için aşağıdaki komutları çalıştırın:
Header("HTTP/1.1 301 Kalıcı Olarak Taşındı"); header("Yer: http://site.ru"); çıkış();
nginx için Kalıcı Yönlendirme 301
Yönlendirme kuralları sunucu bölümünde açıklanmıştır.
www.site.ru'dan site.ru'ya yönlendirme
sunucu (dinle 80; sunucu_adı www.site.ru; yeniden yaz ^ http://site.ru$request_uri? kalıcı; )veya tüm siteler için genel bir kural:
Sunucu ( server_name ~^(?! www\.); yeniden yaz ^ http://www.$host$request_uri kalıcı; )
site.ru'dan www.site.ru'ya yönlendirme
sunucu (dinle 80; sunucu_adı site.ru; yeniden yaz ^ http://www.site.ru$request_uri? kalıcı; )index.php'den ana sayfaya yönlendirme
konum = /index.php ( if ($request_uri = /index.php) ( yeniden yaz ^ http://$host? kalıcı;#301 yönlendirme ) fastcgi_pass unix:/tmp/fastcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_params içerir; )UCP Hile Karşıtı- sunucuyu vicdansız oyunculardan korumak için ücretsiz hile karşıtı istemci-sunucu programı.
» Şimdi UCP sunucusundan gelen veriler "Monitör" bölümünde siteye gönderilecek
» Yeni cvar ucp_monitor eklendi
» HL1. Geliştirilmiş hileye karşı koruma sistemi
» HL2. En son CSS sürümü için geliştirilmiş destek
» HL2. Deathmatch mod desteği
» HL2. binkw32.dll'nin otomatik olarak değiştirilmesi
yetenekler:
» Oyun dosyalarının değiştirilmesine ve değiştirilmesine karşı koruma
» Oyun sürecinin başlamasından ve değişmesinden korunma
» Komut dosyası hilelerinin kullanımına karşı koruma
» Benzersiz PC kimliğine göre sistemi yasakla
» İstemci bölümünün yarı otomatik kurulumu
» Oyunların buharlı ve buharsız sürümleri için destek
» Oyunculardan ekran görüntüsü alabilme
» Hızlı sorun giderme için hata ayıklama modu
Desteklenen oyunlar:
" Yarım hayat
» Koşul Sıfır
» Karşı Saldırı 1.6
" Yenilgi günü
» Adrenalin Oyuncular
» Team Fortress Klasik
" Counter Strike kaynağı
» MU Çevrimiçi
» Ragnarok Çevrimiçi
İstemci tarafını yükleme:
1. Yükleyiciyi çalıştırın, anladığınız bir dil seçin ve "İleri"ye tıklayın.
2. Lisans koşullarını kabul edin ve "İleri"ye tıklayın
3. "Gözat"a tıklayın ve hl.exe dosyasını seçin, ardından "Aç"a tıklayın
4. Bir oyun türü seçin ve bir anahtar eklemeyi unutmayın -buhar Oyunun buhar versiyonuna veya 33 veya daha yüksek bir yamaya sahipseniz (bu yapı 4156'dır, yapı numarasını öğrenmek için komutu oyun konsoluna yazmanız yeterlidir) versiyon
)
Anahtar değerler:
-buhar- oyunun Steam sürümü için veya yama 33 veya üzeri ise gereklidir
-noforcemparms- Windows'tan fare düğmesi ayarlarını kullanır
-noforcemaccel- Windows'tan fare hızlandırma ayarlarını kullanır
-noforcemspd- Windows'tan fare hızı ayarlarını kullanır
-frekans- oyunu başlatırken belirtilen monitör frekansını ayarlayacaktır (LCD için işe yaramaz)
-w- monitör çözünürlük genişliği (ör. -w 800 -h 600 set 800x600)
işaretini kaldırmadıysanız "Masaüstünde kısayollarla bir dizin oluşturun" , kurulumdan sonra, masaüstünüzde Ultra Core Protector dizini içeriğiyle birlikte görünecektir:
ucp.log- hata kodlarını ve bilgisayarın yapılandırması hakkında bilgileri içeren ana dosya.
ucp.ini- oyun başlatma ayarları dosyası.
Öncelik=2- oyun süreci için öncelik modu:
düşük - 1
orta - 2
yüksek - 3
gerçek zamanlı - 4
ortalamanın altında - 5
ortalamanın üzerinde - 6
Oyun=Counter Strike- oyun türü (Half-Life, Counter-Strike, Condition-Zero, Yenilgi Günü, Team Fortress, Counter-Strike Source)
dil=1- hataların görüntüleneceği dil (0 - İngilizce, 1 - Rusça)
Parametreler=-nojoy -nomaster -nointro - oyun başlatma seçenekleri, oyun başlatma seçeneklerini ayarlamak için kısayol özelliğinde belirtilmelidir "Masaüstü\Ultra Çekirdek Koruyucu\Counter-Strike" .
ucp.dbg- hata ayıklama modunda anti-hile başlatılırken bilgilerin kaydedileceği dosya.
Hata ayıklama modu- sorunları belirlemek için hile önleme modunun hata ayıklama modu.
Counter Strike- bundan böyle anti-cheat ile oyuna başlamak için bu kısayolu kullanın.
Oyunların lisanslı sürümlerine yüklemek için dizini belirtmelisiniz. "steam\steamapps\\counterstrike\", ve hile önlemeye başlamadan önce steam'i başlatmalısınız.
HL1 için kurulum:
» Anti-cheat'ın çalışması için AMX Mod X'in en son sürümü sunucuda kurulu olmalıdır.
» Kopyala ucp.amxx dizine eklentiler/amxmodx/eklentiler/
" addons/amxmodx/configs/plugins.ini
ucp.amxx satırı ekle
» Kopyala ucp.cmd oyun modunun kök dizinine, burada liblist.gam
» Kopyala banlist.txt, config.cfg, cvarlist.txt, tespitlist.txt ve filelist.txt
dizine eklentiler/amxmodx/configs/ucp/
» Kopyala ucp.txt dizine eklentiler/amxmodx/veri/lang/
» Sunucuda 0.4.8 sürümünün altında kurulu bir dproto modülünüz varsa, hile önleme ile uyumluluk için yapılandırmasında gereklidir. dproto.cfg dize bul ValidInfoFields_Motoru
ve satırın sonuna ekleyin \*ucp_id
HL2 için kurulum:
» Anti-cheat'ın sunucuda çalışabilmesi için en son sürüm yüklü olmalıdır.
» Kopyala ucp.smx dizine eklentiler/sourcemod/eklentiler/
» Kopyala ucp.cmd oyun modunun kök dizinine, burada gameinfo.txt
» Kopyala banlist.txt, config.cfg, cvarlist.txt, tespitlist.txt
ve dosya listesi.txt dizine cfg/ucp/
» Kopyala ucp.phrases.txt dizine eklentiler/sourcemod/translations/
Not:
» Steam istemcilerinin sunucuya girebilmesi için, VAC'yi devre dışı bırak, bunun için anahtarı eklemeniz gerekir -güvensiz sunucu tarafı başlangıç satırına.
» Anti-cheat olmadan giriş yapan oyuncular için anti-cheat'ı otomatik olarak yüklemek ve çalıştırmak için, satırı eklemeniz gerekir.
Düzenlemek
esasta motd.txt sunucu kısmı. Oyuncu bağlantıya tıkladıktan sonra Düzenlemek, oyun boşalacak ve hile karşıtı aracılığıyla çalışacaktır. Oyuna anti-cheat ile başlamak için oyunun kök dizinindeki ucp.exe dosyasından oyunu başlatmanız gerektiği konusunda da oyuncuları uyarmalısınız.
Dosya Amaçları:
yapılandırma.cfg- hile karşıtı yapılandırma dosyası.
banlist.txt- yasaklı kullanıcıların tanımlayıcıları.
ucp.cmd- tanımlama ve otomatik güncelleme için kullanılan mevcut istemci bölümünün orijinal dosyası.
dosya listesi.txt- sunucudakilerle kontrol edilecek dosyaların listesi. 100 satırdan fazla değil.
cvarlist.txt- değerleri zorlanan cvarların listesi. 50 satırdan fazla değil. (Counter-Strike için varsayılan cvar listesi). (Yalnızca HL1 için)
ucp.txt- HL1 için farklı dillerde sunucu mesajları.
ucp.phrases.txt- HL2 için farklı dillerde sunucu mesajları.
tespit listesi.txt- istemci tarafında istenmeyen yazılım imzalarının listesi. 50 satırdan fazla değil. Sözdizimi:
Arama Tipi:
[P]- işlem adına göre arama
[W]- pencere sınıfına göre arama
[D]- sürücü adına göre arama
Hareketler:
[M]- mesajı göster
[K]- boşaltma işlemi
[B]-bsod
Örnek:
[W][K]viral
[W][B]ollydbg
[D][M]ntice.sys SoftIce'ı kapatmanız ve bilgisayarı yeniden başlatmanız gerekiyor
Takımlar:
ucp_ban - benzersiz bir bilgisayar tanımlayıcısı ile yerel sunucudaki bir oyuncuyu yasaklar. Yasak süresi belirtilmemişse veya 0 belirtilmişse, yasak kalıcıdır.
ucp_banid - girilen tanımlayıcı tarafından yerel sunucuya bir yasak koyar. Yasak süresi belirtilmemişse veya 0 belirtilmişse, yasak kalıcıdır.
ucp_unban - girilen tanımlayıcı tarafından yerel sunucudaki yasağı kaldırır.
ucp_banlist- yasaklı tanımlayıcıların tablosunu gösterir.
ucp_banlist_file - yasaklı kullanıcı kimliklerinin depolandığı dosyanın yolu (Varsayılan "0").
ucp_version- mevcut hile karşıtı sürümü gösterir.
ucp_who- sunucudaki oyuncuların listesini gösterir.
ucp_screen - oynatıcıdan ekran görüntüsü alır ve seçilen protokolü kullanarak jpg formatında sunucuya gönderir. İkinci parametre, oyundan çıkmadan ekran görüntüsünü görüntülemek için yalnızca HTTP modunda gereklidir.
ucp_autoscreen - belirli bir zaman aralığında (saniyede) oynatıcıdan bir ekran görüntüsü alır. Minimum frekans en az 60 saniye olmalıdır (Varsayılan "0").
ucp_mode - sunucuyu yeniden başlatmadan hile karşıtı eklentiyi etkinleştirin/devre dışı bırakın (Varsayılan "1").
0 - eklenti devre dışı
1 - eklenti etkin
ucp_checkfile_mode - filelist.txt (Varsayılan "1") dosyalarını denetlemeyi etkinleştirin/devre dışı bırakın.
0 - seçenek devre dışı
1 - seçenek etkinleştirilir, orijinal olmayan dosyalar bulunduğunda onları siler ve yenisini atar
2 - seçenek etkinleştirilir, orijinal olmayan dosyalar bulunduğunda, oyunun yeniden yüklenmesi gerektiğine dair bir mesajla oyunu kaldırır
ucp_upload_mode - ekran görüntülerinin sunucuya gönderileceği protokol (Varsayılan "FTP").
FTP- dosya aktarım Protokolü
http- Üstmetin transfer protokolü
YEREL - ekran görüntülerini yerel bir sunucuya yükleyin (UCP Ekran Yükleyici eklentisi kurulmalıdır)
ucp_upload_host - Ekran görüntülerinin gönderileceği sunucunun HOST veya IP adresi (www, http:// ve ftp:// olmadan), http veya ftp sunucusu oyunun kendisiyle aynı sunucuda bulunuyorsa ve sunucunun dahili ve harici bir adresi varsa, adres yerine "+" işaretini ayarlamak daha iyidir, bu durumda ekran görüntüleri harici oyuncular sunucunun harici adresine ve dahiliden dahiliye gönderilir.
ucp_upload_port - Sunucunun PORTU.
ucp_upload_user - FTP sunucusunda tanımlama için oturum açın.
ucp_upload_pass - FTP sunucusunda tanımlama için şifre.
ucp_upload_path - ekran görüntülerinin yükleneceği dizin veya php betiği.
ucp_build - sunucuya girmesine izin verilen yapı sayısı veya sayıları (Varsayılan "0", yani seçenek devre dışıdır). Bir yapı "4156" veya birkaç "3779;3939;3248;3266" belirtebilirsiniz. Anti-cheat aşağıdaki yapıları tanır:
2834, 3147, 3210, 3248, 3266, 3329, 3382, 3647, 3779, 3939, 4156, 4381, 4554
3048, 3152, 3264, 3224, 3698, 3945, 4044, 4248
ucp_cpurl - sunucuya bağlanırken içerik barındırma tarafından sağlanan: alanında banner'ınızı gösterme yeteneği (Varsayılan "0", yani seçenek devre dışıdır). Bir html dosyası oluşturmanız gerekiyor, örneğin cs.html, buraya aşağıdaki kodu yazın:
burada cs.jpg, 340x56 boyutlarındaki banner'ınızdır. Ardından cs.html , cs.jpg'yi http sunucunuza yükleyin ve burada belirtin http://adresiniz/cs.html
ucp_detect_mode - oynatıcı tarafında istenmeyen yazılımların taranmasını etkinleştirme/devre dışı bırakma (Varsayılan "1").
0 - kontrol devre dışı
1 - etkin olup olmadığını kontrol edin
ucp_detect_time - oynatıcının oturum açmasının başlangıcından itibaren istenmeyen yazılımları taramak için saniye cinsinden aralık (Varsayılan "0", yani yalnızca sunucuya girerken taranır).
ucp_link - bir kick mesajı gönderildiğinde gösterilecek olan antichat bağlantısı.
ucp_redirect_mode - hile koruması olmadan oturum açan oyuncuları yeniden yönlendirme işlevini etkinleştirme/devre dışı bırakma (Varsayılan "0", yani işlev devre dışıdır).
0 - yönlendirme devre dışı
1 - yönlendirme etkin
ucp_redirect_wan - İnternetten gelen hile karşıtı olmayan oyuncuların yönlendirileceği sunucunun harici adresi.
ucp_redirect_lan
- Ağın içinden gelen hile karşıtı olmayan oyuncuların yönlendirileceği sunucunun yerel adresi.
soket_hz .
» Yükleme Ekranları - http sunucusunda ekran görüntüleri almak için basit php betiği.
» ATAC + UCP - benzersiz bir UCP tanımlayıcısı tarafından cezalandırılmak üzere "takımlarındaki oyuncuların saldırılarının kontrolü" entegre bir eklenti.
.htaccess yapılandırma dosyası, Apache web sunucuları için yapılandırmadır. Çoğu ana bilgisayar bu sunucu üzerinden çalışır, bu nedenle bu dosya her sitede bulunur. Web yöneticileri, kendi değişikliklerini yaparak çalışmalarını kısmen yönetebilir. Bu yazımızda sunucuda değiştirilebilecek yönergelere ve kurallara bakacağız.
En önemli .htaccess dosyası sitenin kökünde bulunur:
Eylemleri, geçerli dizine ve tüm alt dizinlere uygulanır. Şunlar. site sahipleri, tüm sunucunun çalışmasına müdahale etmeden yalnızca projelerinin çalışmasını etkileme fırsatına sahiptir. Bu dosya eksikse, herhangi bir not defteri kullanılarak oluşturulabilir. Ana şey, dosya adının ".htaccess" olması gerektiğidir - .txt, .doc vb. biçimler olmadan.
.htaccess dosyası aracılığıyla, 301 yönlendirmeleri çoğunlukla sunucu düzeyinde kurulur, bu da yeni bir sayfaya geçme sürecini büyük ölçüde hızlandırır, çünkü. ara sayfa yüklemeye gerek yok. Ayrıca, 404 hatasını hangi dosyanın işleyeceğini de belirtir.
Biraz daha aşağıda, .htaccess üzerinden yönlendirmeler için tüm yaygın seçeneklere bakacağız, ancak önce seçenekler ve kurallar hakkında bilgi sahibi olalım.
Yönlendirmelerle çalışabilmek için ReWriteEngine modülünü etkinleştirmeniz gerekir. Bunu yapmak için iki satır kod yazmanız gerekir (tercihen .htaccess dosyasının en üstüne):
Seçenekler +FollowSymLinks RewriteEngine Açık
Mod_write yönergeleriyle çalışabilmeniz için bu satırları .htaccess dosyanızın en üstüne yerleştirin.
Barındırma ayrıca mod_alias modüllerini etkinleştirmiş olmalıdır (Redirect, RedirectPermanent ve RedirectMatch'i desteklemek için).
1. Yönlendirme, RewriteRule ve RewriteCond kuralları
1.1. Yönlendirme yönergesi
Yönlendirme sözdizimi:
Yönlendir / nereden http://where_full_adresi
Yönlendirme, bir sayfadan diğerine doğrudan yönlendirme ayarlar.
Durumda yönlendirme kodunu yazın. İsteğe bağlı bir parametredir. Çoğu zaman, sayfanın adresinde kalıcı bir değişiklik olduğunu gösteren 301 yazarlar.
"Kimden" sayfasının, tam site adresi olmadan, ancak tam ilgili URL'nin eğik çizgiyle "/" (yani sitenin kökünden) başladığı biçimde yazılması önemlidir. Yönlendirmenin gittiği sayfa tam olarak yazılmalıdır, yani. URL sayfasının mutlak adresi (yani, alan adı ve http veya https protokolü ile).
Örneğin
Yönlendirme 301 /oldpage.php http://site/newpage.php
Farklı da yazabilirsiniz
RedirectPermanent 301 /oldpage.php http://site/newpage.php veya Redirect kalıcı 301 /oldpage.php http://site/newpage.php
1.2. RewriteRule Yönergesi
RewriteRule yönergesi geçiş kurallarını belirler. Sözdizimi aşağıdaki gibidir:
RewriteRule Model Değiştirme [kodlar]
- Harici yönlendirmeyle, tarayıcı satırındaki adresin URL'si değişir - ""
- Dahili ile - tarayıcı satırındaki adresin URL'sini değiştirmez - " " veya "[L] "
1.3. RewriteCond Yönergesi
RewriteCond yönergesi, RewriteRule'daki kuralların yürütüldüğü koşulları tanımlar.
Yeniden YazmaCond Karşılaştırma_DizesiŞart
Örneğin, bu terimler kullanıcının tarayıcısı, IP adresi, unvanı vb. olabilir.
1.4. RedirectMatch yönergesi
RedirectMatch yönergesi, normal ifadeler yazmanıza izin vermesiyle tek farkı Redirect'e benzer.
RedirectMatch Nereden Nereye
2. .htaccess'te 301 yönlendirme örnekleri
Makalelerde birçok .htaccess yönlendirme örneğini zaten ele aldık:
- Site adresini değiştirin - eski alan adından yenisine yönlendirin
Burada henüz yapılmamış yönlendirmeler için seçenekler ekleyeceğiz.
2.1. Bir sayfadan diğerine yönlendirme
site.ru/cat/oldpage'den site.ru/newpage.html'ye yönlendirme
RewriteRule ^cat/eskisayfa.* /newpage.html
Veya ikinci seçenek:
Yönlendirme 301 /cat/oldpage http://www.site.com/newpage.php
2.2. Tüm .htm dosyalarından .html'ye yönlendirme
RewriteCond %(REQUEST_FILENAME) !-f RewriteRule ^(.*)\.htm$ $1.html
Veya ikinci seçenek:
RewriteRule ^(.*)\.htm$ $1.html
2.3. Tüm dizini başka bir sayfaya yönlendir
/old/ dizini ve alt dizinlerindeki herhangi bir sayfa /new.php'ye yönlendirilecektir.
RewriteRule ^eski(.*)$ /new.php
2.4. Bir URL'deki fazladan eğik çizgileri kaldırma
Örneğin, /catalog///stranica.html sayfası kullanılabilir ve açılır. Böyle bir durumdan kaçınmak ve sonsuz sayıda kopya üretmemek için aşağıdaki yönlendirmeyi yazmalısınız.
RewriteCond %(REQUEST_URI) ^(.*)//(.*)$ RewriteRule . %1/%2
2.5. Yönlendirme olmadan yeniden yaz
Sayfanın URL'sini değiştirmeden başka bir sayfa yükleyebilirsiniz. Örneğin, /news.html sayfasını yükleyelim ve adres çubuğu /news/happy adresini görüntüleyecektir.
RewriteRule ^haber/mutlu.* /news.html [L]
2.6. Ana sayfa adresinin sonuna eğik çizgi koymak
Örneğin, birçok sunucu, URL'de son eğik çizginin yazılmaması için çalışır. Örneğin, http://site.ru . Aşağıdaki kod bu sorunu çözmektedir: site http://site.ru/ adresinde açılacaktır.
RewriteCond %(REQUEST_URI) /+[^\.]+$ RewriteRule ^(.+[^/])$ %(REQUEST_URI)/
2.7. Bir URL'den bir dizin dizinini kaldırma
Örneğin, bir sayfadan yönlendirme için site.com/directoriya/page.html site.com/page.html'de aşağıdakileri yazmanız gerekir:
RewriteRule ^directoriya/(.+)$ http://site.com/$1
Veya ikinci seçenek:
Yeniden YazmaCond %(DOCUMENT_ROOT)/dizin/$1-f RewriteRule ^(.*)$ dizin/$1
2.8. GET parametrelerini yeniden yönlendir
Örneğin, /?act=page&id=2 sayfasından /page-2/ sayfasına yönlendirin
RewriteCond %(QUERY_STRING) act=sayfa RewriteCond %(QUERY_STRING) id=(\d+) RewriteRule .* /page/%1/? ]
2.9. m.site.ru sitesinin mobil versiyonuna yönlendirin
Bu örnekte, kullanıcının siteyi bir mobil cihazdan açtığı (HTTP_USER_AGENT) önce kontrol edilir, ardından site adresi m.URL ile değiştirilir.
RewriteCond %(HTTP_HOST) ^(.*)$ RewriteCond %(HTTP_USER_AGENT) (?i:midp|samsung|nokia|j2me|avant|docomo|novarra|palmos|palmsource|opwv|chtml|pda|mmp|böğürtlen|mib|symbian|kablosuz|nokia|el|mobi|telefon|cdm|upb| ses|SIE|SEC|samsung|HTC|mot-|mitsu|sagem|sony|alcatel|lg|eric|vx|NEC|philips|mmm|xx|panasonic|sharp|wap|sch|rover|pocket|benq|java |pt|pg|vox|amoi|kuş|compal|kg|voda|sany|kdd|dbt|sendo|sgh|gradi|jb|dddi|moto|iphone|android) RewriteRule ^$ http://m.%1
2.10. Alt alan adından yönlendirme
Örneğin, poddomen.site.ru alt etki alanının herhangi bir sayfasından site.ru ana etki alanına yönlendirme yapalım.
RewriteCond %(HTTP_HOST) ^poddomen.site.ru$ RewriteRule ^(.*)$ http://site.ru%(REQUEST_URI)
3. htaccess ile diğer örnekler
3.1. IP adresini ve tarayıcıyı reddet
172.111.222.55 IP adresine sahip bir IE tarayıcısından bir kullanıcı için sitenin açılmasını yasaklayacağız.
RewriteCond %(HTTP_USER_AGENT) MSIE RewriteCond %(REMOTE_ADDR) ^172\.111\.222\.55$ RewriteRule ^.*$ - [F]
3.2. Belirli bir dosyayı reddet
Disable_file.html dosyasını herkes için devre dışı bırakın:
herkesten inkar
3.3. Bir ipten erişime izin ver
Erişime yalnızca 172.111.222.55 ip adresinden izin verilecektir.
sipariş reddet, tümden reddet izin ver 172.111.222.55'ten izin ver
3.4. Farklı ipten erişimi engelle
Birkaç IP adresinden siteye erişimi engelleyin 172.112.222.55, 172.113.222.55, 172.114.*.*
sipariş reddet, tüm redde izin ver 172.112.222.55'ten reddet 172.113.222.55'ten reddet 172.114.*.*
3.5. URL'yi büyük karakterlerden küçük karakterlere yönlendir
URL'deki tüm büyük harfler küçük harflere dönüştürülecektir.
RewriteRule - RewriteRule ! - RewriteRule ^([^A]*)A(.*)$ $1a$2 RewriteRule ^([^B]*)B(.*)$ $1b$2 RewriteRule ^([^C]*)C(.* )$ $1c$2 RewriteRule ^([^D]*)D(.*)$ $1d$2 RewriteRule ^([^E]*)E(.*)$ $1e$2 RewriteRule ^([^F]*) F(.*)$ $1f$2 RewriteRule ^([^G]*)G(.*)$ $1g$2 RewriteRule ^([^H]*)H(.*)$ $1h$2 RewriteRule ^([^ I]*)I(.*)$ $1i$2 RewriteRule ^([^J]*)J(.*)$ $1j$2 RewriteRule ^([^K]*)K(.*)$ $1k$2 RewriteRule ^([^L]*)L(.*)$ $1l$2 RewriteRule ^([^M]*)M(.*)$ $1m$2 RewriteRule ^([^N]*)N(.*)$ $1n$2 RewriteRule ^([^O]*)O(.*)$ $1o$2 RewriteRule ^([^P]*)P(.*)$ $1p$2 RewriteRule ^([^Q]*)Q( .*)$ $1q$2 RewriteRule ^([^R]*)R(.*)$ $1r$2 RewriteRule ^([^S]*)S(.*)$ $1s$2 RewriteRule ^([^T] *)T(.*)$ $1t$2 RewriteRule ^([^U]*)U(.*)$ $1u$2 RewriteRule ^([^V]*)V(.*)$ $1v$2 RewriteRule ^( [^W]*)W(.*)$ $1w$2 RewriteRule ^([^X]*)X(.*)$ $1x$2 RewriteRule ^([^Y]*)Y(.*)$ $1y $2 RewriteRule ^([^Z]*)Z(.*)$ $1z$2 RewriteRule - [N] RewriteCond %(ENV:HASCAPS) TRUE Rewr iteRule ^/?(.*) /$1
Altın Numaralar Güzel bir telefon numarası nasıl satılır
Kripto para madenciliği: basit kelimelerle nedir
En iyi dizüstü bilgisayar işletim sistemi: Eksiksiz inceleme
Sınıf arkadaşlarından müzik indirmek için programlar Sosyal ağ sınıf arkadaşlarından üzücü bir şarkı indirin
Yandex tarayıcısının mobil versiyonu