12 thủ thuật với wordpress .htaccess file

WordPress

{ 2 comments }

htaccess là file có chức năng cho phép thay đổi, tinh chỉnh những thiết lập của Apache Webserver. Vì htaccess có thể thay đổi những thiết lập quan trọng nên người sử dụng phải đảm bảo file này được bảo mật ở mức độ nào đó tránh việc truy cập và chỉnh sửa trái phép. Để làm điều này bạn chỉ cần CHMOD cho file .htaccess là 644.

Thủ thuật với WordPress .htaccess file

Thủ thuật với WordPress .htaccess file


Trong WordPress file htaccess cũng có tính năng tương tự và còn nhiều hơn thế nữa. Bài viết dưới đây sẽ giới thiệu với các bạn những thủ thuật với wordpress htaccess file.

1. Chuyển hướng WordPress RSS Feeds sang Feedburner với .htaccess

Feedburner là một dịch vụ vô cùng tốt của Google giúp bạn có thể gửi thông báo có bài viết mới tới độc giả của Blog nhanh chóng, theo lịch được đặt sẵn và hoàn toàn miễn phí. Với một vài dòng lệnh sau thêm vào file .htaccess bạn có thể dễ dàng chuyển hướng feed mặc định của WordPress sang Feedburner của Google. Thay http://feeds.feedburner.com/tohaitrieu bằng link feedburner của bạn.

# chuyen huong wordpress feeds sang feedburner
<IfModule mod_rewrite.c>
 RewriteEngine on
 RewriteCond %{HTTP_USER_AGENT} !FeedBurner    [NC]
 RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
 RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/tohaitrieu [R=302,NC,L]
</IfModule>

2. Xóa /category/ từ WordPress Category URL.

Theo mặc định khi click vào link một chuyên mục WordPress bạn sẽ thấy đi kèm đằng trước là /category/ bạn có thể thay đổi cấu trúc này bằng cách vào Thiết lập (Settings) – Permalink –> Phần Category base để đổi thành chuyen-muc hoặc cái gì tùy bạn. Nhưng nếu muốn xóa luôn thì thêm đoạn code sau vào cuối file .htaccess
RewriteRule ^category/(.+)$ http://www.tohaitrieu.net/$1 [R=301,L]
Thay www.tohaitrieu.net bằng link blog của bạn.

Xem thêm  Thay đổi đường dẫn thư mục uploads WordPress

3. Sử dụng Browser Cache

Một cách khác để tối ưu hóa tốc độ tải trang cho website – blog đó là sử dụng Browser Cache với thủ thuật dưới các bạn có thể tùy chỉnh cách lưu cache của trình duyệt. VD các thành phần tĩnh như hình ảnh, css, js…

FileETag MTime Size
<ifmodule mod_expires.c>
  <filesmatch ".(jpg|gif|png|css|js)$">
       ExpiresActive on
       ExpiresDefault "access plus 1 year"
   </filesmatch>
</ifmodule>

Thay jpg|gif|png|css|js thành các thành phần bạn muốn và đổi thời gian lưu cache 1 years thành 1 day, 1 month tùy bạn.

4. Nén dữ liệu tĩnh – Compress static data

Bằng cách này, dữ liệu được gửi tới trình duyệt web sẽ được nén giúp tiết kiệm băng thông và việc giải nén sẽ được trình duyệt thực hiện.

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
BrowserMatch ^Mozilla/errors/4 gzip-only-text/html
BrowserMatch ^Mozilla/errors/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html

5. Chuyển hướng url bài viết có chứa ngày tháng năm về dạng /%postname%/

Việc này thực chất là sử dụng chuyển hướng 301 để chuyển toàn bộ các định dạng url bài viết có dạng ngày, tháng, năm về dạng chỉ có tiêu đề.
Trước tiên bạn cần truy cập bảng quản trị, tại phần Settings->Permalink. Chọn Custom và điền vào: /%postname%/
URL bài viết sau khi đổi sẽ có dạng:
http://www.domain.com/name-of-the-post
Bây giờ bạn hãy mở file .htaccess thêm vào cuối:
RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://www.domain.com/$4
Như vậy bạn có thể thu gọn url mà không mất backlink cũng như không xảy ra tình trạng link chết 404.

6. Từ chối bình luận từ nguồn không đáng tin cậy.

Nếu bạn có một blog lớn với cả tá bình luận spam mỗi ngày thì đây là một thủ thuật hay. Trên thực tế những bình luận rác đó sử dụng các chương trình dò quét và truy cập thẳng vào file wp-comments-post.php mà không cần truy cập vào blog của bạn. Những dòng code dưới đây có nhiệm vụ dò tìm các nguồn đó và từ chối nếu phát hiện truy cập trái phép.

RewriteEngine On
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{REQUEST_URI} .wp-comments-post.php*
RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR]
RewriteCond %{HTTP_USER_AGENT} ^$
RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]

Lưu ý: Bạn chỉ được phép thay đổi yourblog.com thành domain của bạn.

7. Chuyển hướng khách truy cập tới trang bảo trì

Khi bạn đang update blog, chỉnh sửa giao diện hoặc thay đổi các thành phần trên blog mà không muốn khách truy cập thấy ngay lúc đó thì có thể tạo một file html với nội dung thông báo “Website đang nâng cấp. Bạn vui lòng quay lại sau!” hoặc điều gì đại loại thế. Bạn cũng có thể tạo một file html đẹp lung linh sau đó redirect khách truy cập tới trang đó bằng đoạn code sau:

RewriteEngine on
RewriteCond %{REQUEST_URI} !/maintenance.html$
RewriteCond %{REMOTE_ADDR} !^127.0.0.1
RewriteRule $ /maintenance.html [R=302,L]

Lưu ý: ở đây mình sử dụng chuyển hướng 302 để tránh các bộ máy tìm kiếm index và thay trang chủ bởi trang thông báo bảo trì. Thay maintenance.html bằng trang bạn đã tạo. Đổi 127.0.0.1 bằng địa chỉ IP của bạn.

Xem thêm  Trọn bộ phím tắt wordpress editor hữu ích

8. Tránh sao chép hình ảnh cho Blog WordPress

Tình trạng sao chép bài viết cũng như hình ảnh mà không để lại nguồn trở nên quá phổ biến. Điều đó là thiếu tôn trọng người viết bài và nếu copy nguyên cả nội dung, hình ảnh còn làm giảm đáng kể băng thông đối với các website sử dụng các dịch vụ hosting giới hạn băng thông.
Những dòng code dưới đây sẽ giúp bạn tránh được tình trạng hotlinking:

RewriteEngine On
#Thay thế ?tohaitrieu.net/ bằng url của bạn
RewriteCond %{HTTP_REFERER} !^http://(.+.)?tohaitrieu.net/ [NC]
RewriteCond %{HTTP_REFERER} !^$
#Thay /images/nohotlink.jpg bằng hình ảnh chống hotlink của bạn.
RewriteRule .*.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]

9. Chỉ cho phép IP của bạn truy cập thư mục wp-admin

Nếu bạn có địa chỉ IP tĩnh và không muốn bất kỳ ai truy cập trái phép thư mục wp-admin thì bạn có thể thêm đoạn code sau vào cuối file .htaccess

AuthUserFile /dev/null
AuthGroupFile /dev/null
AuthName "Example Access Control"
AuthType Basic
<LIMIT GET>
order allow, deny
deny from all
allow from 127.0.0.1
</LIMIT>

Thay 127.0.0.1 bằng ip của bạn hoặc tạo 1 dòng mới với nội dung tương tự dòng chứa ip.

10. Cấm spammer với .htaccess

Nếu bạn để ý kỹ khi duyệt bình luận wordpress thì bạn sẽ thấy trong thông tin về người bình luận sẽ có hiển thị ip. Nếu đó là một bình luận spam và muốn tránh spam từ ip đó trong tương lai bạn có thể sử dụng đoạn code sau để thêm vào file .htaccess wordpress:

<Limit GET POST>
order allow,deny
deny from 192.168.1.abc
allow from all
</Limit>

Để thêm nhiều ip bạn chỉ cần tạo một dòng mới với nội dung tương tự – khác ip là được.

Xem thêm  [Hướng dẫn] Import Sample Data cho WooCommerce

11. Bỏ www từ URL

Vì một vài lý do (SEO) bạn không muốn sử dụng www trước URL bạn có thể sử dụng đoạn code sau để bỏ:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^your-site.com$ [NC]
RewriteRule ^(.*)$ http://your-site.com/$1 [L,R=301]

12. Tạo trang thông báo lỗi tùy chỉnh

Trong quá trình sử dụng có thể Website – Blog của bạn sẽ xảy ra những lỗi như 404 – Not Found, 400 Bad Request, 500 – Internal Server Error… và bạn muốn tùy chỉnh các trang thông báo lỗi thì bạn có thể tạo từng trang riêng, bỏ vào 1 thư mục, up lên host và thêm đoạn code sau để khai báo:

ErrorDocument 400 /error/errors/400.html
ErrorDocument 401 /errors/401.html
ErrorDocument 403 /errors/403.html
ErrorDocument 404 /errors/404.html
ErrorDocument 405 /errors/405.html
ErrorDocument 408 /errors/408.html
ErrorDocument 414 /errors/414.html
ErrorDocument 500 /errors/500.html
ErrorDocument 502 /errors/502.html
ErrorDocument 504 /errors/504.html

Trên đây là 12 thủ thuật cực kỳ hữu ích với WordPress .htaccess file có thể bạn chưa biết. Nếu bạn có thủ thuật nào khác có thể góp ý để mình cập nhật thêm.

Góp ý cho Tô Triều

  • bin 27/02/2014, 04:20

    Genesis a tự design lại ah , nhìn đơn giản mà đẹp nhỉ 😀

    Reply
    • Tô Hải Triều 27/02/2014, 08:16

      Đúng rồi. Anh chỉnh sửa lại một chút cho phù hợp với sở thích của mình 🙂