Web sitenizin .htaccess dosyasını düzenlemek WordPress’e yeni başlayanlar için korkutucu gelebilir. Ancak deneyimlerimize göre, web sitenizin performansını, güvenliğini ve SEO’sunu iyileştirmek için kullanabileceğiniz bir araçtır.
Bu dosyayı, kodlama sihirbazı olmanıza gerek kalmadan sitenizin sunucu ayarlarında ince ayar yapabileceğiniz bir kontrol paneli olarak düşünebilirsiniz.
Bu makalede, WordPress için çevrimiçi varlığınız üzerinde daha fazla kontrol sahibi olmanızı sağlayacak bazı yararlı .htaccess hileleri göstereceğiz.
.htaccess Dosyası Nedir ve Nasıl Düzenlenir?
.htaccess dosyası bir Apache web sunucusu yapılandırma dosyasıdır. WordPress web siteniz için sunucunuzun uyması gereken kuralları tanımlamanıza olanak tanıyan bir metin dosyasıdır.
WordPress, SEO dostu bir URL yapısı oluşturmak için .htaccess dosyasını kullanır. Ancak bu dosya kalıcı bağlantı ayarlarını depolamaktan çok daha fazlasını yapabilir.
.htaccess dosyası WordPress sitenizin kök klasöründe bulunur. Düzenlemek için bir FTP istemcisi veya cPanel dosya yöneticisi kullanarak web sitenize bağlanmanız gerekecektir.
.htaccess dosyanızı bulamıyorsanız, WordPress’te .htaccess dosyasının nasıl bulunacağına ilişkin kılavuzumuza bakın.
.htaccess dosyanızı düzenlemeden önce, bir kopyasını yedek olarak bilgisayarınıza indirmeniz önemlidir. Herhangi bir şeyin yanlış gitmesi durumunda bu dosyayı kullanabilirsiniz.
Bunu söyledikten sonra, WordPress için deneyebileceğiniz bazı yararlı .htaccess hilelerine bir göz atalım:
- Protect Your WordPress Admin Area
- Password Protect WordPress Admin Folder
- Disable Directory Browsing
- Disable PHP Execution in Some WordPress Directories
- Protect Your WordPress Configuration wp-config.php File
- Setting Up 301 Redirects Through .htaccess File
- Ban Suspicious IP Addresses
- Disable Image Hotlinking in WordPress Using .htaccess
- Protect .htaccess From Unauthorized Access
- Increase File Upload Size in WordPress
- Disable Access to XML-RPC File Using .htaccess
- Blocking Author Scans in WordPress
1. WordPress Yönetici Alanınızı Koruyun
Yalnızca belirli IP adreslerine erişimi sınırlandırarak WordPress yönetici alanınızı korumak için .htaccess kullanabilirsiniz.
Bu kod parçacığını kopyalayıp .htaccess dosyanıza yapıştırmanız yeterlidir:
AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "WordPress Admin Access Control"
AuthType Basic
<LIMIT GET>
order deny,allow
deny from all
# whitelist Syed's IP address
allow from xx.xx.xx.xxx
# whitelist David's IP address
allow from xx.xx.xx.xxx
</LIMIT>
xx değerlerini kendi IP adresinizle değiştirmeyi unutmayın. İnternete erişmek için birden fazla IP adresi kullanıyorsanız, bunları da eklediğinizden emin olun.
Ayrıntılı talimatlar için .htaccess kullanarak WordPress yöneticisine erişimin nasıl sınırlandırılacağına ilişkin kılavuzumuza bakın.
2. WordPress Yönetici Klasörünü Parola ile Koruma
WordPress sitenize halka açık internet noktaları da dahil olmak üzere birden fazla konumdan erişiyorsanız, erişimi belirli IP adresleriyle sınırlamak işinize yaramayabilir.
WordPress yönetici alanınıza ek bir parola koruması eklemek için .htaccess dosyasını kullanabilirsiniz.
İlk olarak, bir .htpasswds dosyası oluşturmanız gerekir. Bu çevrimiçi oluşturucuyu kullanarak kolayca bir tane oluşturabilirsiniz.
Bu .htpasswds dosyasını herkesin erişebileceği web dizininizin veya /public_html/
klasörünün dışına yükleyin. İyi bir yol şöyle olabilir:
/home/user/.htpasswds/public_html/wp-admin/passwd/
Ardından, bir .htaccess dosyası oluşturun ve /wp-admin/
dizinine yükleyin ve ardından aşağıdaki kodu buraya ekleyin:
AuthName "Admins Only"
AuthUserFile /home/yourdirectory/.htpasswds/public_html/wp-admin/passwd
AuthGroupFile /dev/null
AuthType basic
require user putyourusernamehere
<Files admin-ajax.php>
Order allow,deny
Allow from all
Satisfy any
</Files>
Önemli: AuthUserFile
yolunu .htpasswds dosyanızın dosya yolu ile değiştirmeyi ve kendi kullanıcı adınızı eklemeyi unutmayın.
Ayrıntılı talimatlar için WordPress yönetici klasörünün nasıl parola ile korunacağına ilişkin kılavuzumuza bakın.
3. Dizin Taramayı Devre Dışı Bırak
Birçok WordPress güvenlik uzmanı dizin taramasının devre dışı bırakılmasını önermektedir. Dizin taraması etkinleştirildiğinde, bilgisayar korsanları savunmasız bir dosya bulmak için sitenizin dizinine ve dosya yapısına bakabilir.
Web sitenizde dizin taramayı devre dışı bırakmak için .htaccess dosyanıza aşağıdaki satırı eklemeniz gerekir:
Options -Indexes
Bu konu hakkında daha fazla bilgi için WordPress’te dizin taramayı devre dışı bırakma kılavuzumuza bakın.
4. Bazı WordPress Dizinlerinde PHP Yürütmeyi Devre Dışı Bırakın
Bazen bilgisayar korsanları bir WordPress sitesine girer ve bir arka kapı yükler. Bu arka kapı dosyaları genellikle temel WordPress dosyaları olarak gizlenir ve /wp-includes/
veya /wp-content/uploads/
klasörlerine yerleştirilir.
WordPress güvenliğinizi artırmanın daha kolay bir yolu, bazı WordPress dizinleri için PHP yürütmeyi devre dışı bırakmaktır.
Bilgisayarınızda boş bir .htaccess dosyası oluşturmanız ve ardından aşağıdaki kodu içine yapıştırmanız gerekecektir:
<Files *.php>
deny from all
</Files>
Dosyayı kaydedin ve ardından /wp-content/uploads/
ve /wp-includes/
dizinlerinize yükleyin.
Daha fazla bilgi için, belirli WordPress dizinlerinde PHP çalıştırmayı devre dışı bırakma hakkındaki eğitimimize göz atın.
5. WordPress Yapılandırma wp-config.php Dosyanızı Koruyun
Muhtemelen WordPress web sitenizin kök dizinindeki en önemli dosya wp-config.php dosyasıdır. WordPress veritabanınız ve ona nasıl bağlanacağınız hakkında bilgiler içerir.
wp-config.php dosyanızı yetkisiz erişime karşı korumak için bu kodu .htaccess dosyanıza eklemeniz yeterlidir:
<files wp-config.php>
order allow,deny
deny from all
</files>
6. .htaccess Dosyası Üzerinden 301 Yönlendirmelerini Ayarlama
301 yönlendirmelerini kullanmak, kullanıcılarınıza içeriğin yeni bir konuma taşındığını bildirmenin en SEO dostu yoludur. 301 yönlendirmelerinizi gönderi bazında düzgün bir şekilde yönetmek istiyorsanız WordPress’te yönlendirmelerin nasıl ayarlanacağına ilişkin kılavuzumuza göz atın.
Öte yandan, yönlendirmeleri hızlı bir şekilde ayarlamak istiyorsanız, tek yapmanız gereken bu kodu .htaccess dosyanıza yapıştırmaktır:
Redirect 301 /oldurl/ http://www.example.com/newurl
Redirect 301 /category/television/ http://www.example.com/category/tv/
7. Şüpheli IP Adreslerini Yasaklayın
Web sitenize belirli bir IP adresinden alışılmadık derecede yüksek talepler mi geliyor? .htaccess dosyanızda IP adresini engelleyerek bu istekleri kolayca engelleyebilirsiniz.
Aşağıdaki kodu .htaccess dosyanıza eklemeniz yeterlidir:
<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>
xx yerine engellemek istediğiniz IP adresini yazmayı unutmayın.
8. .htaccess Kullanarak WordPress’te Görüntü Hotlinking’ini Devre Dışı Bırakma
Diğer web sitelerinin sitenizdeki görsellere doğrudan hotlink vermesi WordPress sitenizi yavaşlatabilir ve bant genişliği limitinizi aşabilir. Bu, çoğu küçük web sitesi için büyük bir sorun değildir. Ancak, popüler bir web sitesi veya çok sayıda fotoğraf içeren bir web sitesi işletiyorsanız, bu ciddi bir sorun haline gelebilir.
Bu kodu .htaccess dosyanıza ekleyerek görüntü hotlinking’ini önleyebilirsiniz:
#disable hotlinking of images with forbidden or custom image option
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?wpbeginner.com [NC]
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?google.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ – [NC,F,L]
Bu kod, yalnızca istek wpbeginner.com veya Google.com’dan geliyorsa resimlerin görüntülenmesine izin verir. wpbeginner.com yerine kendi alan adınızı yazmayı unutmayın.
Görsellerinizi korumanın daha fazla yolu için WordPress’te görsel hırsızlığını önleme yolları hakkındaki kılavuzumuza bakın.
9. .htaccess’i Yetkisiz Erişimden Koruyun
Gördüğünüz gibi, .htaccess dosyası kullanılarak yapılabilecek pek çok şey var. Web sunucunuz üzerinde sahip olduğu güç ve kontrol nedeniyle, bilgisayar korsanlarının yetkisiz erişiminden korumak önemlidir.
Aşağıdaki kodu .htaccess dosyanıza eklemeniz yeterlidir:
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
10. WordPress’te Dosya Yükleme Boyutunu Artırma
WordPress’te dosya yükleme boyutu sınırını artırmanın farklı yolları vardır. Ancak paylaşımlı hosting kullanan kullanıcılar için bu yöntemlerden bazıları işe yaramıyor.
Birçok kullanıcı için işe yarayan yöntemlerden biri .htaccess dosyalarına aşağıdaki kodu eklemektir:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
Bu kod basitçe web sunucunuza WordPress’te dosya yükleme boyutunu ve maksimum yürütme süresini artırmak için bu değerleri kullanmasını söyler.
11. .htaccess Kullanarak XML-RPC Dosyasına Erişimi Devre Dışı Bırakma
Her WordPress kurulumu xmlrpc.php adlı bir dosya ile birlikte gelir. Bu dosya üçüncü taraf uygulamaların WordPress sitenize bağlanmasını sağlar. Çoğu WordPress güvenlik uzmanı, herhangi bir üçüncü taraf uygulaması kullanmıyorsanız, bu özelliği devre dışı bırakmanızı önerir.
Bunu yapmanın birden fazla yolu vardır. Bunlardan biri .htaccess dosyanıza aşağıdaki kodu eklemektir:
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Daha fazla bilgi için WordPress’te XML-RPC’nin nasıl devre dışı bırakılacağına ilişkin kılavuzumuza bakın.
12. WordPress’te Yazar Taramalarını Engelleme
Kaba kuvvet saldırılarında kullanılan yaygın bir teknik, bir WordPress sitesinde yazar taramaları yapmak ve ardından bu kullanıcı adlarının şifrelerini kırmaya çalışmaktır.
Aşağıdaki kodu .htaccess dosyanıza ekleyerek bu tür taramaları engelleyebilirsiniz:
# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans
Daha fazla bilgi için WordPress’te yazar taramalarını engelleyerek kaba kuvvet saldırılarını nasıl engelleyebileceğinize ilişkin makalemize bakın.
Umarız bu makale WordPress için en kullanışlı .htaccess hilelerini öğrenmenize yardımcı olmuştur. Ayrıca WordPress güvenlik denetiminin nasıl yapılacağına ilişkin rehberimizi ve en iyi WordPress içerik koruma eklentileri uzman seçimimizi de görmek isteyebilirsiniz.
If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.
Simeon
Thanks so much for this. Very helpful!
WPBeginner Support
Glad it was helpful!
Yönetici
Jackson Andrade
I use password protection for wp-login.php. My customers cannot logout when login.php is protected. Is there a way I can allow customers to logout without calling wp-login.php?action=logout?
Admins too can’t logout, but that’s not an issue.
Woocommerce customer’s logut url is, domain.com/account/customer-logout.
Both call wp-login.php for logout. Customers are asked for htaccess id and password. If there is a workaround, let me know. Thanks
WPBeginner Support
If your site has a login for users who are not your admins then we would not recommend password protecting your wp-login.php for the time being and we do not have a workaround at this time.
Yönetici
Jackson Andrade
Thanks for that Info. Hope Wordpress adds a feature in future where it won’t redirect to login.php for logging out.
HtaccessGuy
Don’t password protect wpadmin if you use AJAX else it’l break stuff.
WPBeginner Support
If you mean for 2 in this list, we’ve added code to allow ajax to continue to work.
Yönetici
Ana
This resolved my issue with above code. Thanks.
Abhi
Please Help Me.
when I paste the following code in .htaccess file it shows an error that is..
It appears you don’t have
permission to access this page.
403 Error. Forbidden.
WPBeginner Support
For resolving the 403 error, you would want to take a look at our guide here: https://www.wpbeginner.com/wp-tutorials/how-to-fix-the-403-forbidden-error-in-wordpress/
Yönetici
Ben
Great article!
Do I need to do this if I already have installed WordFence plugin?
Some people don’t recommend messing with .htaccess file.
Regards.
WPBeginner Support
None of these tricks are required if you don’t want to use them, they are only helpful tools that you can use.
Yönetici
Sebastian
I am not sure what does “Protect .htaccess From Unauthorized Access” mean exactly. Will I be able to access it if I make changes from point 9?
WPBeginner Support
It means if someone knows where your htaccess is located and tries to view the file by putting that address in the url, the browser will not be able to view it.
Yönetici
reus
how to use wp login user name and password (registered user) to access in your no. 2 topic (Password Protect WordPress Admin Folder).
hope to to find answer here.
thank you
WPBeginner Support
If you wanted to use that, you would need to set the information in the htpasswds file
Yönetici
reus
thank you for your response, how to set that information in the htpasswds? thank you
WPBeginner Support
We show the tool to use under tip 2 in the article
Selvakumaran Krishnan
Hai Syed Balkhi,
I have to open a URL which has query parameters and strings like this.
something.example.com/pagename.php?query1=string1&query2=string2&redirecturl=http%3A%2F%2Fsomething.example2.com/something&query3=string3
In the above URL, the problem is %3A%2F%2F. It shows 403 forbidden error. If I remove that part, the URL works fine.
I have searched and tried all the methods like mod rewrite, redirect, etc,. but nothing works.
Is there any way to remove (or) rewrite (or) redirect that encoded part using .htaccess file. That part is in the middle of so many parameters. There are a lot of query parameters before and after that part.
Please share your idea.
Kathrine
This is a great article!! I followed your instructions and everything works fine. I tried to open my admin site using the different IP address and it works great. Thank you for sharing your knowledge.
Mohamed Adel
When Protecting the directory to wp-admin (as explained in 2. Password Protect WordPress Admin Folder), wen I go to any page on the site the massage appears to put password.. How to fix that?
I tried from Cpanel and the same problem happens
Tony
The tip in point 4 for disabling php execution has started to cause issues with the tinymce editor in pages & posts. A php file is included in the tinymce folder that loads the relevant js files. I’ve just removed the htaccess code from the wp-include folder to stop the issue. Maybe there’s another way around this?
Pankaj
Point 5 is not working
(5. Protect Your WordPress Configuration wp-config.php File)
[05-Mar-2018 08:20:03 Etc/GMT] PHP Parse error: syntax error, unexpected ‘<' in /home/—–/public_html/xyz.com/wp-config.php on line 91
WPBeginner Support
Hi Pankaj,
The code in the 5th trick needs to be pasted in .htaccess file and not in wp-config.php file.
Yönetici
Maximilian
Hi there, thank you!
Is ist possible to see the whole .htaccess somewhere? Yes, i could read: “put one line after the other” but still I am not sure.
Is then “# END WordPress° sill the last line or is it somewhere on the top then?
And what do you think about putting “Options -Indexes” on the very end?
Thank you for your answer!
WPBeginner Support
Hi Maximilian,
You can add new lines after the #END WordPress line.
Yönetici
yudi cahyadi
good article..i have a question, after implementing the code in htaccess. Do I need to install a security plugin or not..??
yudi cb(beginner)
WPBeginner Support
Hi Yudi Cahyadi,
Yes, you still need to install a security plugin. Please see our WordPress security guide for more information.
Yönetici
Mario von Gollaz
Hi there, nice article. Is there a way to bulk redirect?
Mario
Kevin
Hi,
Great article and just one question!
Should you place the extra code (especially speed opimisations) before or after the # BEGIN WordPress part?
Regards
Kevin
Brian Wohn
Hi, my theme developer told me this might be in the htaccess, but I don’t know why my wordpress is adding this at the end of all my pages:
Any idea why its adding the “/?v=8f2564d40946”? I’ve checked my PermaLinks, Slugs, etc and nothing there?
Thanks for your help!
WPBeginner Support
Hi Brian,
It lools like GeoLocation tag added by WooCommerce.
If you are using WooCommerce, then you can turn it off. Go to WooCommerce General Options page and uncheck option ‘Geolocate with page caching support’ option.
Yönetici
Adrienne Warden
Another wonderful post from WP Beginner…Just one tip for all us newbies…While WP Beginner has some of the best tips and trick for WordPress, when it comes to protecting your site, if you are on a shared server, search “support” first. I’ve learned a lot about the backend from reading post on WP Beginner, but the truth of the matter is – I’m no backender and most shared hosting already have a fix in place for these sorts of things…I’m with InMotion and they actual have set up one click solutions for many issues that effect site security. I turned off the file Index right from CPanel…
Still WP Beginner is my go to for WordPress knowledge…You guys are awesome!
Fien
That is a nice article about htaccess. But how to implement this in one file? Can I put all lines after another?
WPBeginner Support
Hi Fien,
You can add them one after another.
Yönetici
Liew CheonFong
Great list. Bookmarked!
Do you have same list for NGINX web server (which does not read .htaccess file) ?
Pattye
There is a way to ban bots from crawling your site the this file. Any suggestions in doing that, besides banning the IP?