I can't convert .htaccess to nginx config. I have been trying to use online convert tools. .htaccess to convert is following:
RewriteEngine on
RewriteCond %{REQUEST_URI} !/public
RewriteCond %{REQUEST_URI} !/index.php
RewriteRule ^(.*)$ index.php/?params=$1 [NC]
I have been trying to use following nginx config.:
location / {
rewrite ^(.*)$ index.php/?params=$1;
}
This is just not working as it should. Also it gives access to other files in this directory. I want only index.php to be available. And even that needs to be working with .htaccess rules.
Installing apache/httpd is not possible on production server. And I don't want waste resources to run apache inside docker.
Best Answer
In Apache, you have these
RewriteCond
directives for excluding!/public
and/index.php
. In Nginx, just add a separatelocation
s for them:Your
rewrite
is almost there, but unlike in Apache, the replacement string in Nginx is always root relative (notlocation
relative) and should have the leading/
. Also, I suggest removing the slash betweenphp/?
as unnecessary.