Edycja pliku .htaccess twojej witryny internetowej może wydawać się onieśmielająca dla początkujących użytkowników WordPressa. Z naszego doświadczenia wynika jednak, że jest to narzędzie, którego możesz użyć do poprawy wydajności, zabezpieczeń i SEO Twojej witryny internetowej.
Możesz myśleć o tym pliku jako o panelu sterowania do precyzyjnego dostrajania ustawień serwera twojej witryny bez konieczności bycia czarodziejem kodowania.
W tym artykule pokażemy kilka przydatnych sztuczek .htaccess dla WordPressa, które dadzą ci większą kontrolę nad twoją obecnością w sieci.
Czym jest plik .htaccess i jak go edytować?
Plik .htaccess jest plikiem konfiguracyjnym serwera WWW Apache. Jest to plik tekstowy, który pozwala zdefiniować reguły, których serwer ma przestrzegać dla twojej witryny internetowej WordPress.
WordPress używa pliku .htaccess do generowania przyjaznej dla SEO struktury adresów URL. Plik ten może jednak zrobić o wiele więcej niż tylko przechowywać ustawienia bezpośredniego odnośnika.
Plik .htaccess znajduje się w katalogu głównym twojej witryny WordPress. Aby go edytować, musisz połączyć się z twoją witryną internetową za pomocą klienta FTP lub menedżera plików cPanel.
Jeśli nie możesz znaleźć twojego pliku .htaccess, zapoznaj się z naszym przewodnikiem, jak znaleźć plik .htaccess w WordPress.
Przed edycją twojego pliku .htaccess ważne jest, aby importować jego kopię na komputer jako kopię zapasową. Możesz użyć tego pliku na wypadek, gdyby coś poszło nie tak.
Powiedziawszy to, przyjrzyjmy się kilku przydatnym sztuczkom .htaccess dla WordPress, które możesz wypróbować:
- 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. Zabezpiecz swój obszar administracyjny WordPress.
Możesz użyć .htaccess, aby zabezpieczyć swój obszar administracyjny WordPress, ograniczając dostęp tylko do wybranych adresów IP.
Wystarczy skopiować i wkleić ten fragment kodu do twojego pliku .htaccess:
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>
Nie zapomnij zastąpić wartości xx twoim własnym adresem IP. Jeśli używasz więcej niż jednego adresu IP, aby uzyskać dostęp do Internetu, upewnij się, że dodałeś je również.
Szczegółowe instrukcje można znaleźć w naszym przewodniku na temat ograniczania dostępu do panelu administracyjnego WordPress za pomocą .htaccess.
2. Zabezpieczony hasłem katalog administracyjny WordPress
Jeśli uzyskujesz dostęp do swojej witryny WordPress z wielu lokalizacji, w tym z publicznych punktów internetowych, ograniczenie dostępu do określonych adresów IP może nie działać.
Możesz użyć pliku .htaccess, aby dodać dodatkowe zabezpieczenie hasłem do twojego obszaru administracyjnego WordPress.
Najpierw należy wygenerować plik .htpasswds. Można go łatwo utworzyć za pomocą tego generatora online.
Prześlij ten plik .htpasswds poza twój publicznie dostępny katalog internetowy lub katalog /public_html/
. Dobrą ścieżką będzie:
/home/user/.htpasswds/public_html/wp-admin/passwd/
Następnie utwórz plik .htaccess i prześlij go do katalogu /wp-admin/
, a następnie dodaj do niego następujący kod:
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>
Ważne: Nie zapomnij zastąpić ścieżki AuthUserFile
ścieżką twojego pliku .htpasswds i dodać twoją własną nazwę użytkownika.
Szczegółowe instrukcje można znaleźć w naszym przewodniku na temat zabezpieczania hasłem katalogu administracyjnego WordPress.
3. Wyłącz przeglądanie katalogów
Wielu ekspertów ds. zabezpieczeń WordPressa zaleca wyłączenie przeglądania katalogów. Przy włączonym przeglądaniu katalogów hakerzy mogą zajrzeć do struktury katalogów i plików twojej witryny, aby znaleźć plik podatny na ataki.
Aby wyłączyć przeglądanie katalogów na twojej witrynie internetowej, musisz dodać następującą linię do pliku .htaccess:
Options -Indexes
Więcej na ten temat można znaleźć w naszym przewodniku na temat wyłączania przeglądania katalogów w WordPress.
4. Wyłącz wykonywanie PHP w niektórych katalogach WordPressa
Czasami hakerzy włamują się na witrynę WordPress i instalują backdoora. Te pliki backdoora są często zamaskowane jako rdzeń plików WordPress i są umieszczane w katalogach /wp-includes/
lub /wp-content/uploads/
.
Łatwiejszym sposobem na poprawę twojego zabezpieczenia WordPress jest wyłączenie wykonywania PHP dla niektórych katalogów WordPress.
Będziesz musiał utworzyć pusty plik .htaccess na twoim komputerze, a następnie wkleić w nim następujący kod:
<Files *.php>
deny from all
</Files>
Zapisz plik, a następnie prześlij go do katalogów /wp-content/uploads/
i /wp-includes/
.
Aby uzyskać więcej informacji, zapoznaj się z naszym poradnikiem na temat wyłączania wykonywania PHP w niektórych katalogach WordPress.
5. Zabezpiecz swoją konfigurację WordPressa wp-config.php File
Prawdopodobnie najważniejszym plikiem w katalogu głównym twojej witryny internetowej WordPress jest plik wp-config.php. Zawiera on informacje o twojej bazie danych WordPress i sposobie łączenia się z nią.
Aby zabezpieczyć twój plik wp-config.php przed nieautoryzowanym dostępem, wystarczy dodać ten kod do pliku .htaccess:
<files wp-config.php>
order allow,deny
deny from all
</files>
6. Konfigurowanie przekierowań 301 za pomocą pliku .htaccess
Używanie przekierowań 301 to najbardziej przyjazny dla SEO sposób na poinformowanie użytkowników, że twoja treść została przeniesiona do nowej lokalizacji. Jeśli chcesz prawidłowo zarządzać przekierowaniami 301 dla poszczególnych wpisów, zapoznaj się z naszym przewodnikiem na temat konfigurowania przekierowań w WordPress.
Z drugiej strony, jeśli chcesz szybko skonfigurować przekierowania, wystarczy wkleić ten kod do twojego pliku .htaccess:
Redirect 301 /oldurl/ http://www.example.com/newurl
Redirect 301 /category/television/ http://www.example.com/category/tv/
7. Banowanie podejrzanych adresów IP
Czy widzisz niezwykle wysokie żądania do twojej witryny internetowej z określonego adresu IP? Możesz łatwo zablokować te żądania, blokując adres IP w twoim pliku .htaccess.
Wystarczy dodać następujący kod do twojego pliku .htaccess:
<Limit GET POST>
order allow,deny
deny from xxx.xxx.xx.x
allow from all
</Limit>
Nie zapomnij zastąpić xx adresem IP, który chcesz zablokować.
8. Wyłącz hotlinkowanie obrazków w WordPress przy użyciu .htaccess
Inne witryny internetowe bezpośrednio łączące obrazki z twojej witryny mogą spowolnić działanie witryny WordPress i przekroczyć limit przepustowości. Nie jest to duży problem dla większości mniejszych witryn internetowych. Jeśli jednak prowadzisz popularną witrynę internetową lub witrynę z dużą ilością zdjęć, może to stać się poważnym problemem.
Możesz zapobiec hotlinkowaniu obrazków, dodając ten kod do twojego pliku .htaccess:
#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]
Ten kod pozwala na wyświetlanie obrazków tylko wtedy, gdy żądanie pochodzi z wpbeginner.com lub Google.com. Nie zapomnij zastąpić wpbeginner.com twoją własną nazwą domeny.
Więcej sposobów na zabezpieczenie twoich obrazków znajdziesz w naszym przewodniku na temat sposobów zapobiegania kradzieży obrazków w WordPress.
9. Zabezpieczony .htaccess przed nieautoryzowanym dostępem
Jak widać, istnieje wiele rzeczy, które można zrobić za pomocą pliku .htaccess. Ze względu na moc i kontrolę, jaką ma na twoim serwerze WWW, ważne jest, aby zabezpieczyć go przed nieautoryzowanym dostępem hakerów.
Wystarczy dodać następujący kod do twojego pliku .htaccess:
<files ~ "^.*\.([Hh][Tt][Aa])">
order allow,deny
deny from all
satisfy all
</files>
10. Zwiększ rozmiar przesyłanego pliku w WordPress
Istnieją różne sposoby na zwiększenie limitu rozmiaru przesyłanych plików w WordPress. Jednak w przypadku użytkowników korzystających z hostingu współdzielonego niektóre z tych metod nie działają.
Jedną z metod, która sprawdziła się w przypadku wielu użytkowników, jest dodanie następującego kodu do pliku .htaccess:
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
php_value max_input_time 300
Ten kod po prostu mówi twojemu serwerowi WWW, aby używał tych wartości w celu zwiększenia rozmiaru przesyłanego pliku, a także maksymalnego czasu wykonania w WordPress.
11. Wyłącz dostęp do pliku XML-RPC za pomocą .htaccess
Każda instalacja WordPress zawiera plik o nazwie xmlrpc.php. Plik ten umożliwia aplikacjom innych firm łączenie się z twoją witryną WordPress. Większość ekspertów ds. zabezpieczeń WordPress radzi, aby wyłączyć tę funkcję, jeśli nie korzystasz z żadnych aplikacji innych firm.
Można to zrobić na wiele sposobów. Jednym z nich jest dodanie następującego kodu do twojego pliku .htaccess:
# Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>
Aby uzyskać więcej informacji, zapoznaj się z naszym przewodnikiem na temat wyłączania XML-RPC w WordPress.
12. Blokowanie skanowania autorów w WordPress
Powszechną techniką stosowaną w atakach brute force jest uruchamianie skanowania autorów na witrynie WordPress, a następnie próba złamania haseł dla tych nazw użytkowników.
Możesz zablokować takie skanowanie, dodając następujący kod do twojego pliku .htaccess:
# BEGIN block author scans
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]
# END block author scans
Aby uzyskać więcej informacji, zapoznaj się z naszym artykułem na temat tego, jak zniechęcić do ataków typu brute force, blokując skanowanie autorów w WordPress.
Mamy nadzieję, że ten artykuł pomógł ci poznać najbardziej przydatne sztuczki .htaccess dla WordPress. Zachęcamy również do zapoznania się z naszym przewodnikiem na temat przeprowadzania audytu zabezpieczeń WordPress i wyborem najlepszych wtyczek do ochrony treści WordPress.
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!
Administrator
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.
Administrator
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.
Administrator
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/
Administrator
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.
Administrator
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.
Administrator
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
Administrator
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.
Administrator
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.
Administrator
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.
Administrator
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.
Administrator
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.
Administrator
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?