Search code examples
.htaccesscron

Crontab being blocked by htaccess even Whitelisted


I'm trying to block all access except my own and my server to my two scripts, but when I try to make a crontab to run my scripts, I get the error 403 forbidden even with my server IP being whitelisted in my htaccess.

This is my .htaccess

Options +FollowSymlinks
RewriteEngine on
#the urls that should be checked
RewriteCond %{REQUEST_URI} ^(/script.php|/script2.php).*$
RewriteCond %{REMOTE_ADDR} !=194.1....(My server Ip)
RewriteCond %{REMOTE_ADDR} !=0.0.0.0
RewriteCond %{REMOTE_ADDR} !=127.0.0.1
RewriteCond %{REMOTE_ADDR} !=172......(My Ip)
RewriteRule ^.*$ / [F]

this is my crontab (i'm using hostinger panel)

wget -O /dev/null mydomain.com/script.php/  

This is the error

--2022-07-15 09:30:02--  mydomain.com/script.php
Resolving mydomain.com (mydomain.com)... 2a02:4780:b....., 194.1....(my server ip)
Connecting to mydomain.com(mydomain.com)|2a02:4780:b:....|:80... connected.
HTTP request sent, awaiting response... 403 Forbidden
2022-07-15 09:30:02 ERROR 403: Forbidden.

and if i run manually from my ip , it works fine. So is there a way i can make my script run as a crontab and not accessible by url by others. only by me and by my server


Solution

  • I think i Got it , I just added this line before the RewriteCond %{REMOTE_ADDR} and is working now , no one can access via url , and the server can access normaly

    RewriteCond %{HTTP_USER_AGENT} !^Wget [NC]