I get the following error:
Access forbidden!
You don't have permission to access the requested directory. There is either no index document or the directory is read-protected.
If you think this is a server error, please contact the webmaster.
Error 403
when I use the following code in my httpd-vhosts.conf:
<VirtualHost *:80>
ServerName frontend.dev
DocumentRoot "AmanAgarwal/Projects/basic/yii-application/frontend/web/"
<Directory "AmanAgarwal/Projects/basic/yii-application/frontend/web/">
# use mod_rewrite for pretty URL support
RewriteEngine on
# If a directory or a file exists, use the request directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward the request to index.php
RewriteRule . index.php
# use index.php as index file
DirectoryIndex index.php
# ...other settings...
# Apache 2.4
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Allow from all
Require all granted
## Apache 2.2
</Directory>
</VirtualHost>
Related
I am having issues redirecting to index.php in my slim app with .htaccess file.
Routes work if I add the index.php at the end of the URL
So slimapp.dev/hello/myname gets error
Not Found The requested URL /hello/myname was not found on this server.
while slimapp.dev/index.php/hello/myname works
Here is my .htaccess file
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^index.php [QSA,L]
I am using Apache 2 on Ubuntu 18.04
File structure
public_html
|_index.php
|_ vendor
|_.htaccess
virtualHost 000-default.conf
<VirtualHost *:80>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ServerAdmin webmaster#localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
If I use the php -S localhost:3000 it works as expected but if I use the Apache web server, I most add the index.php to the end of the URL to make it work. Thanks
You are doing wrong.This is quite simple with just two lines of code:
RewriteEngine On
RewriteRule ^myname/(.*)$ /$1 [L]
I am trying to host my wordpress project in centos remotely, i have hosted it on /var/www/html and gave permission 777 for all sub folders and files, and changes
and in .httpd file i have changed to all
<Directory />
AllowOverride All
# Require all denied
</Directory>
and
<Directory "/var/www">
AllowOverride All
# Allow open access:
# Require all granted
</Directory>
also in
<Directory "/var/www/html">
AllowOverride All
</Directory>
have changed
<Directory "/var/www/cgi-bin">
AllowOverride All
Options None
Require all granted
</Directory>
but not use the i am getting same internal server error, and The requested URL /l was not found on this server, but i can able to access backend of wordpress wp-admin what would be the problem then?
Adding this in .htaccess solved the problem
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
I think the best way is check apache error log.
I wanted to isntall laravel in a sub directory inside my dev machine http://dev-machine/applis/main/laravel
My default document root is F:/data/web
My .htaccess file is
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /applis/main/laravel
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>
My httpd.conf file has below code
<VirtualHost *:80>
ServerName http://dev-machine/applis/main/laravel/public
DocumentRoot F:/data/web/applis/main/laravel/public
<Directory "applis/main/laravel/public">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
I have also tried the belwo virtual host config
<VirtualHost *:80>
ServerName http://dev-machine/applis/main/laravel/public
Alias /laravel applis/main/laravel/public
DocumentRoot F:/data/web/applis/main/laravel/public
<Directory "/applis/main/laravel/public">
AllowOverride all
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
But stil I am unable to access the app via
http://dev-machine/applis/main/laravel/public
I am getting he below error
Not Found
The requested URL /applis/main/laravel/public/ was not found on this server.
After adding the virtual host when it is not even loading the index.php file when I try loading it directly via http://dev-machine/applis/main/laravel/public/index.php
I was trying to remove the index.php from the URL, on my WAMP server THIS worked perfectly, but for some reason on my actual hosted server it's not.
I just created on my current Linux Ubuntu Server a sub-domain,
under /var/www/tools.example.com/public_html
I checked if mod_rewrite is enabled using a .php file I uploaded to the dir with this:
<?php
phpinfo();
and mod_rewrite is under "Loaded Modules".
so no worries here.
the .conf file I created in etc/apache2/sites-available/tools.example.com.conf looks like this:
<VirtualHost *:80>
ServerName tools.example.com
ServerAdmin walid#example.com
ErrorLog /var/www/tools.example.com/logs/error.log
CustomLog /var/www/tools.example.com/logs/access.log combined
DocumentRoot /var/www/tools.example.com/public_html
<Directory /var/www/tools.example.com.conf/public_html/>
Options Indexes FollowSymLinks MultiViews
# changed from None to FileInfo
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
where AllowOverride All so using mod_rewrite with .htaccess is enabled.
I don't know why this is still not working. Any idea why?
the content of the .htaccess file in the main dir:
RewriteEngine on
RewriteBase /
RewriteCond $1 !^(index.php|resources|robots.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
Edit #1:
I already went through all first 9 solutions in this post: CodeIgniter removing index.php from url
Your path is incorrect in your .conf file for the directory directive. Your document root listed should be the same as your Directory directive. So I don't think it's picking up the AllowOverride All directive.
Change this
<Directory /var/www/tools.example.com.conf/public_html/>
To this
<Directory /var/www/tools.example.com/public_html/>
Has a fresh setup of Apache 2.2 + PHP 5.3. Trying to run Yii site, which requires .htaccess file to be as following:
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
But instead of running index.php file it lists the directory.
What I know:
.htaccess is being read and processed - if you break it, you get 500 IE.
mod_rewrite is On: LoadModule rewrite_module modules/mod_rewrite.so
PHP is up, I was able to run Adminer w/o any issues
Virtual Hosts file looks fine (see below)
httpd-vhosts.conf:
<VirtualHost *:80>
DocumentRoot "d:/denis/www/yii.local"
ServerName yii.local
ErrorLog "logs/yii.local-error.log"
CustomLog "logs/yii.local-access.log" common
# Other directives here
# DirectoryIndex index.php
<Directory "D:/denis/www/yii.local">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
#AccessFileName htaccess
</VirtualHost>
Update: If I add Options -Indexes to .htaccess I am getting 403 Forbidden, due to "Directory index forbidden by Options directive".