Here's my full case:
- mvcframework directory inside /var/www/html/ dir.
- mvcframework contains a public dir with index.php acting as a frontloader.
- I am creating a .htaccess file inside public directory with following code:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ index.php?$1 [QSA,L]
</IfModule>
- I am accessing this through virtual host url mvcframe.local that is setup to direct at public folder:
<VirtualHost 127.0.0.3:80>
ServerName mvcframe.local
DocumentRoot /var/www/html/mvcframework/public
<Directory /var/www/html/mvcframework>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/www/html/mvcframework/mvc-error.log
CustomLog /var/www/html/mvcframework/mvc-access.log combined
</VirtualHost>
When I access http://mvcframe.local or http://mvcframe.local/ it outputs index.php content inside public folder index.php as it should.
When I access http://mvcframe.local/?posts/hello it outputs:
Requested URL = posts/hello
- But when I access http://mvcframe.local/posts/hello removing ?, it gives:
Not Found
The requested URL was not found on this server.
Apache/2.4.41 (Ubuntu) Server at mvcframe.local Port 80
I am trying to figure out the solution searching for 2 hours and still haven't got the solution for it.