0

I am trying to open html and php pages directly, but it shows :

    403
    Forbidden
    Access to this resource on the server is denied!

When I try www.mysite.com/dir/ index page shows up, error happened when I want to open page directly as www.mysite.com/dir/index.html or www.mysite.com/dir/subdir/index.php

How I can fix it?

--------------------- Update ---------------------

HTAccess :

##
    # @package      Joomla
    # @copyright    Copyright (C) 2005 - 2013 Open Source Matters. All rights reserved.
    # @license      GNU General Public License version 2 or later; see LICENSE.txt
    ##

    ##
    # READ THIS COMPLETELY IF YOU CHOOSE TO USE THIS FILE!
    #
    # The line just below this section: 'Options +FollowSymLinks' may cause problems
    # with some server configurations.  It is required for use of mod_rewrite, but may already
    # be set by your server administrator in a way that dissallows changing it in
    # your .htaccess file.  If using it causes your server to error out, comment it out (add # to
    # beginning of line), reload your site in your browser and test your sef url's.  If they work,
    # it has been set by your server administrator and you do not need it set here.
    ##

    ## Can be commented out if causes errors, see notes above.
    Options +FollowSymLinks

    ## Mod_rewrite in use.

    RewriteEngine On

    ## Begin - Rewrite rules to block out some common exploits.
    # If you experience problems on your site block out the operations listed below
    # This attempts to block the most common type of exploit `attempts` to Joomla!
    #
    # Block out any script trying to base64_encode data within the URL.
    RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR]
    # Block out any script that includes a <script> tag in URL.
    RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
    # Block out any script trying to set a PHP GLOBALS variable via URL.
    RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
    # Block out any script trying to modify a _REQUEST variable via URL.
    RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
    # Return 403 Forbidden header and show the content of the root homepage
    RewriteRule .* index.php [F]
    #
    ## End - Rewrite rules to block out some common exploits.

    ## Begin - Custom redirects
    #
    # If you need to redirect some pages, or set a canonical non-www to
    # www redirect (or vice versa), place that code here. Ensure those
    # redirects use the correct RewriteRule syntax and the [R=301,L] flags.
    #
    #attack

    RewriteCond %{HTTP_USER_AGENT} libwww [NC,OR]

    RewriteCond %{QUERY_STRING} ^(.*)=http [NC]

    RewriteRule ^(.*)$  [F,L]
    #end attack

    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

    #index.php to root
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.(html?|php)\ HTTP/
    RewriteCond %{REQUEST_URI} !^/administrator/
    RewriteRule (([^/]+/)*)index\.(html?|php)$ http://www.nozadam.com/$1 [R=301,L]

    ## End - Custom redirects

    ##
    # Uncomment following line if your webserver's URL
    # is not directly related to physical file paths.
    # Update Your Joomla! Directory (just / for root).
    ##

    # RewriteBase /

    ## Begin - Joomla! core SEF Section.
    #
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
    #
    # If the requested path and file is not /index.php and the request
    # has not already been internally rewritten to the index.php script
    RewriteCond %{REQUEST_URI} !^/index\.php
    # and the request is for something within the component folder,
    # or for the site root, or for an extensionless URL, or the
    # requested URL ends with one of the listed extensions
    RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC]
    # and the requested path and file doesn't directly match a physical file
    RewriteCond %{REQUEST_FILENAME} !-f
    # and the requested path and file doesn't directly match a physical folder
    RewriteCond %{REQUEST_FILENAME} !-d
    # internally rewrite the request to the index.php script
    RewriteRule .* index.php [L]
    #
    ## End - Joomla! core SEF Section.

    ExpiresActive On
    ExpiresByType image/jpg "access 1 year"
    ExpiresByType image/jpeg "access 1 year"
    ExpiresByType image/gif "access 1 year"
    ExpiresByType image/png "access 1 year"
    ExpiresByType text/css "access 1 month"
    ExpiresByType application/pdf "access 1 month"
    ExpiresByType text/x-javascript "access 1 month"
    ExpiresByType application/x-shockwave-flash "access 1 month"
    ExpiresByType image/x-icon "access 1 year"
    ExpiresDefault "access 20 days"

    RewriteCond %{HTTP_HOST} ^sitename\.ir$ [OR]
    RewriteCond %{HTTP_HOST} ^www\.sitename\.ir$
    RewriteRule ^/?$ "http\:\/\/www\.sitename\.com" [R=301,L]

I try :

RewriteBase /
RewriteRule ^notif/send_message\.php$ - [L]

But not worked

but direct access from browser shows result

problem is when i try to send some parameters with 'GET' from 'PHP' File to Another file !

1
  • Please include your .htaccess code (with sensitive information removed). without details all we can do is speculate on possible causes. If you are uncomfortable providing your .htaccess code, try seeing if this happens without a .htaccess file. May 4, 2016 at 15:56

2 Answers 2

2

You must customize this part or remove it at all:

#index.php to root
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.(html?|php)\ HTTP/
RewriteCond %{REQUEST_URI} !^/administrator/
RewriteRule (([^/]+/)*)index\.(html?|php)$ http://www.nozadam.com/$1 [R=301,L]

For example it can be like this:

 #index.php to root
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.(html?|php)\ HTTP/
RewriteCond %{REQUEST_URI} !^/administrator/
RewriteCond %{REQUEST_URI} !^/subdir/.*?
RewriteRule (([^/]+/)*)index\.(html?|php)$ http://www.nozadam.com/$1 [R=301,L]

In this case

RewriteCond %{REQUEST_URI} !^/subdir/.*?

Will allow you to call files directly from subdir directory.

0

Directly access to files, is probably prohibited by your htaccess file.

Try adding something like this, in htaccess and see if that resolves it.

RewriteEngine On
RewriteRule ^dir\/index\.php$ - [L]
3
  • it doesn't works May 23, 2016 at 7:29
  • Assuming you have already an .htaccess in place, and RewriteEngine is On, this should allow direct access to that file, if other rules in htaccess are already blocking this. If it's not blocked by htaccess, then you might have other issues like permissions on these files/folders.
    – FFrewin
    May 23, 2016 at 7:47
  • more Detail written on this post, can you please check it ? May 23, 2016 at 8:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.