How to convert this very simple .htaccess to Nginx?Convert this .htaccess to nginxNginx rewrite, from htaccess-filesLaravel 4.1 on nginx routes error 404“Simple” .htaccess rewrite for sites in subfolders not workingnginx rewrite throw 404 with last and breakNginX + WordPress + SSL + non-www + W3TC vhost config file questionsImage not display after using nginxnginx PHP files downloading instead of executingCodeIgniter nginx rewrite rules for i8ln URL'sNginx and different types of aliasWhere can I create or edit Nginx URL rewrite configuration file in Google App Engine?
What happens to foam insulation board after you pour concrete slab?
Java guess the number
How would you say “AKA/as in”?
Pay as you go Or Oyster card
What is in `tex.print` or `tex.sprint`?
Why does the Schrödinger equation work so well for the Hydrogen atom despite the relativistic boundary at the nucleus?
How bad would a partial hash leak be, realistically?
Why is the relationship between frequency and pitch exponential?
Should I "tell" my exposition or give it through dialogue?
How could a government be implemented in a virtual reality?
Completing the square to find if quadratic form is positive definite.
From system of coupled ODEs to separable ODE
How to make a setting relevant?
Is there any word or phrase for negative bearing?
Movie where a boy is transported into the future by an alien spaceship
Does the first version of Linux developed by Linus Torvalds have a GUI?
What are the words for people who cause trouble believing they know better?
Can you `= delete` a templated function on a second declaration?
Through what methods and mechanisms can a multi-material FDM printer operate?
What is the advantage of carrying a tripod and ND-filters when you could use image stacking instead?
Why don't B747s start takeoffs with full throttle?
Can a user sell my software (MIT license) without modification?
How is TD(0) method helpful? What good does it do?
C SIGINT signal in Linux
How to convert this very simple .htaccess to Nginx?
Convert this .htaccess to nginxNginx rewrite, from htaccess-filesLaravel 4.1 on nginx routes error 404“Simple” .htaccess rewrite for sites in subfolders not workingnginx rewrite throw 404 with last and breakNginX + WordPress + SSL + non-www + W3TC vhost config file questionsImage not display after using nginxnginx PHP files downloading instead of executingCodeIgniter nginx rewrite rules for i8ln URL'sNginx and different types of aliasWhere can I create or edit Nginx URL rewrite configuration file in Google App Engine?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty height:90px;width:728px;box-sizing:border-box;
I'm using this .htaccess
that pass everything after URL to $param
, soexample.com/news/id
goes to PHP as $_GET['param']='news/id'
. But Nginx is always throwing me to 404 page.
My .htaccess
:
RewriteEngine On
RewriteCond %SCRIPT_FILENAME !-f
RewriteCond %SCRIPT_FILENAME !-d
RewriteRule (.*) index.php?param=$1
What I tried in Nginx default.conf
:
server
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html;
location /
if (!-f $uri)
set $rule_0 1$rule_0;
if (!-d $uri)
set $rule_0 2$rule_0;
if ($rule_0 = "21")
rewrite ^(.*) index.php?param=$1;
nginx web-server .htaccess ngx-http-rewrite-module
add a comment |
I'm using this .htaccess
that pass everything after URL to $param
, soexample.com/news/id
goes to PHP as $_GET['param']='news/id'
. But Nginx is always throwing me to 404 page.
My .htaccess
:
RewriteEngine On
RewriteCond %SCRIPT_FILENAME !-f
RewriteCond %SCRIPT_FILENAME !-d
RewriteRule (.*) index.php?param=$1
What I tried in Nginx default.conf
:
server
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html;
location /
if (!-f $uri)
set $rule_0 1$rule_0;
if (!-d $uri)
set $rule_0 2$rule_0;
if ($rule_0 = "21")
rewrite ^(.*) index.php?param=$1;
nginx web-server .htaccess ngx-http-rewrite-module
add a comment |
I'm using this .htaccess
that pass everything after URL to $param
, soexample.com/news/id
goes to PHP as $_GET['param']='news/id'
. But Nginx is always throwing me to 404 page.
My .htaccess
:
RewriteEngine On
RewriteCond %SCRIPT_FILENAME !-f
RewriteCond %SCRIPT_FILENAME !-d
RewriteRule (.*) index.php?param=$1
What I tried in Nginx default.conf
:
server
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html;
location /
if (!-f $uri)
set $rule_0 1$rule_0;
if (!-d $uri)
set $rule_0 2$rule_0;
if ($rule_0 = "21")
rewrite ^(.*) index.php?param=$1;
nginx web-server .htaccess ngx-http-rewrite-module
I'm using this .htaccess
that pass everything after URL to $param
, soexample.com/news/id
goes to PHP as $_GET['param']='news/id'
. But Nginx is always throwing me to 404 page.
My .htaccess
:
RewriteEngine On
RewriteCond %SCRIPT_FILENAME !-f
RewriteCond %SCRIPT_FILENAME !-d
RewriteRule (.*) index.php?param=$1
What I tried in Nginx default.conf
:
server
listen 80;
listen [::]:80;
server_name domain.com;
root /var/www/html;
location /
if (!-f $uri)
set $rule_0 1$rule_0;
if (!-d $uri)
set $rule_0 2$rule_0;
if ($rule_0 = "21")
rewrite ^(.*) index.php?param=$1;
nginx web-server .htaccess ngx-http-rewrite-module
nginx web-server .htaccess ngx-http-rewrite-module
edited May 20 at 10:24
MrWhite
6,51621426
6,51621426
asked May 20 at 1:56
Sandro BenevidesSandro Benevides
165
165
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
You don't use if
here at all, nor do you manually check for the existence of files. This common pattern is handled instead by try_files
.
For example:
location /
try_files $uri $uri/ /index.php?param=$uri;
(If your web app is broken and can't handle the leading /
in the URI, fix the web app if possible, or see this question if not.)
I tried this but no success. Even if I try to reach /index.php directly nginx shows a 404 page. And the webapp is handling this properly, stopping nginx and starting httpd it works.
– Sandro Benevides
May 20 at 2:19
@SandroBenevides Then you have some other problem. Check your error log.
– Michael Hampton♦
May 20 at 2:21
@SandroBenevides A possible difference here is that the Nginx$uri
variable contains a slash prefix, whereas the Apache$1
backreference in the.htaccess
directive does not. However, you should be able to see that by examining the value of theparam
URL parameter? Or are you saying your script is not being called at all?
– MrWhite
May 20 at 10:44
@MrWhite If I comment this rule in location / block and access domain.com it works, and the script is doing its job properly. If I access domain.com/index.php, it shows 404 error and also if I try domain.com/news/id I get 404. I also tested sending a php file with echo phpinfo() and named as index, when trying to reach the file index.php it shows 404 error, if accessing just the domain.com it works. Other files as images I can access normally.
– Sandro Benevides
May 20 at 14:06
add a comment |
I could fix it using these rules:
server
try_files $uri $uri/ @rewrite;
location @rewrite
rewrite ^/(.*)$ /index.php?_url=$1;
If you have location / without any instructions inside, remove it.
See also stackoverflow.com/questions/41908851/…
– MrWhite
May 20 at 20:26
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "2"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968017%2fhow-to-convert-this-very-simple-htaccess-to-nginx%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
You don't use if
here at all, nor do you manually check for the existence of files. This common pattern is handled instead by try_files
.
For example:
location /
try_files $uri $uri/ /index.php?param=$uri;
(If your web app is broken and can't handle the leading /
in the URI, fix the web app if possible, or see this question if not.)
I tried this but no success. Even if I try to reach /index.php directly nginx shows a 404 page. And the webapp is handling this properly, stopping nginx and starting httpd it works.
– Sandro Benevides
May 20 at 2:19
@SandroBenevides Then you have some other problem. Check your error log.
– Michael Hampton♦
May 20 at 2:21
@SandroBenevides A possible difference here is that the Nginx$uri
variable contains a slash prefix, whereas the Apache$1
backreference in the.htaccess
directive does not. However, you should be able to see that by examining the value of theparam
URL parameter? Or are you saying your script is not being called at all?
– MrWhite
May 20 at 10:44
@MrWhite If I comment this rule in location / block and access domain.com it works, and the script is doing its job properly. If I access domain.com/index.php, it shows 404 error and also if I try domain.com/news/id I get 404. I also tested sending a php file with echo phpinfo() and named as index, when trying to reach the file index.php it shows 404 error, if accessing just the domain.com it works. Other files as images I can access normally.
– Sandro Benevides
May 20 at 14:06
add a comment |
You don't use if
here at all, nor do you manually check for the existence of files. This common pattern is handled instead by try_files
.
For example:
location /
try_files $uri $uri/ /index.php?param=$uri;
(If your web app is broken and can't handle the leading /
in the URI, fix the web app if possible, or see this question if not.)
I tried this but no success. Even if I try to reach /index.php directly nginx shows a 404 page. And the webapp is handling this properly, stopping nginx and starting httpd it works.
– Sandro Benevides
May 20 at 2:19
@SandroBenevides Then you have some other problem. Check your error log.
– Michael Hampton♦
May 20 at 2:21
@SandroBenevides A possible difference here is that the Nginx$uri
variable contains a slash prefix, whereas the Apache$1
backreference in the.htaccess
directive does not. However, you should be able to see that by examining the value of theparam
URL parameter? Or are you saying your script is not being called at all?
– MrWhite
May 20 at 10:44
@MrWhite If I comment this rule in location / block and access domain.com it works, and the script is doing its job properly. If I access domain.com/index.php, it shows 404 error and also if I try domain.com/news/id I get 404. I also tested sending a php file with echo phpinfo() and named as index, when trying to reach the file index.php it shows 404 error, if accessing just the domain.com it works. Other files as images I can access normally.
– Sandro Benevides
May 20 at 14:06
add a comment |
You don't use if
here at all, nor do you manually check for the existence of files. This common pattern is handled instead by try_files
.
For example:
location /
try_files $uri $uri/ /index.php?param=$uri;
(If your web app is broken and can't handle the leading /
in the URI, fix the web app if possible, or see this question if not.)
You don't use if
here at all, nor do you manually check for the existence of files. This common pattern is handled instead by try_files
.
For example:
location /
try_files $uri $uri/ /index.php?param=$uri;
(If your web app is broken and can't handle the leading /
in the URI, fix the web app if possible, or see this question if not.)
answered May 20 at 2:08
Michael Hampton♦Michael Hampton
179k27326659
179k27326659
I tried this but no success. Even if I try to reach /index.php directly nginx shows a 404 page. And the webapp is handling this properly, stopping nginx and starting httpd it works.
– Sandro Benevides
May 20 at 2:19
@SandroBenevides Then you have some other problem. Check your error log.
– Michael Hampton♦
May 20 at 2:21
@SandroBenevides A possible difference here is that the Nginx$uri
variable contains a slash prefix, whereas the Apache$1
backreference in the.htaccess
directive does not. However, you should be able to see that by examining the value of theparam
URL parameter? Or are you saying your script is not being called at all?
– MrWhite
May 20 at 10:44
@MrWhite If I comment this rule in location / block and access domain.com it works, and the script is doing its job properly. If I access domain.com/index.php, it shows 404 error and also if I try domain.com/news/id I get 404. I also tested sending a php file with echo phpinfo() and named as index, when trying to reach the file index.php it shows 404 error, if accessing just the domain.com it works. Other files as images I can access normally.
– Sandro Benevides
May 20 at 14:06
add a comment |
I tried this but no success. Even if I try to reach /index.php directly nginx shows a 404 page. And the webapp is handling this properly, stopping nginx and starting httpd it works.
– Sandro Benevides
May 20 at 2:19
@SandroBenevides Then you have some other problem. Check your error log.
– Michael Hampton♦
May 20 at 2:21
@SandroBenevides A possible difference here is that the Nginx$uri
variable contains a slash prefix, whereas the Apache$1
backreference in the.htaccess
directive does not. However, you should be able to see that by examining the value of theparam
URL parameter? Or are you saying your script is not being called at all?
– MrWhite
May 20 at 10:44
@MrWhite If I comment this rule in location / block and access domain.com it works, and the script is doing its job properly. If I access domain.com/index.php, it shows 404 error and also if I try domain.com/news/id I get 404. I also tested sending a php file with echo phpinfo() and named as index, when trying to reach the file index.php it shows 404 error, if accessing just the domain.com it works. Other files as images I can access normally.
– Sandro Benevides
May 20 at 14:06
I tried this but no success. Even if I try to reach /index.php directly nginx shows a 404 page. And the webapp is handling this properly, stopping nginx and starting httpd it works.
– Sandro Benevides
May 20 at 2:19
I tried this but no success. Even if I try to reach /index.php directly nginx shows a 404 page. And the webapp is handling this properly, stopping nginx and starting httpd it works.
– Sandro Benevides
May 20 at 2:19
@SandroBenevides Then you have some other problem. Check your error log.
– Michael Hampton♦
May 20 at 2:21
@SandroBenevides Then you have some other problem. Check your error log.
– Michael Hampton♦
May 20 at 2:21
@SandroBenevides A possible difference here is that the Nginx
$uri
variable contains a slash prefix, whereas the Apache $1
backreference in the .htaccess
directive does not. However, you should be able to see that by examining the value of the param
URL parameter? Or are you saying your script is not being called at all?– MrWhite
May 20 at 10:44
@SandroBenevides A possible difference here is that the Nginx
$uri
variable contains a slash prefix, whereas the Apache $1
backreference in the .htaccess
directive does not. However, you should be able to see that by examining the value of the param
URL parameter? Or are you saying your script is not being called at all?– MrWhite
May 20 at 10:44
@MrWhite If I comment this rule in location / block and access domain.com it works, and the script is doing its job properly. If I access domain.com/index.php, it shows 404 error and also if I try domain.com/news/id I get 404. I also tested sending a php file with echo phpinfo() and named as index, when trying to reach the file index.php it shows 404 error, if accessing just the domain.com it works. Other files as images I can access normally.
– Sandro Benevides
May 20 at 14:06
@MrWhite If I comment this rule in location / block and access domain.com it works, and the script is doing its job properly. If I access domain.com/index.php, it shows 404 error and also if I try domain.com/news/id I get 404. I also tested sending a php file with echo phpinfo() and named as index, when trying to reach the file index.php it shows 404 error, if accessing just the domain.com it works. Other files as images I can access normally.
– Sandro Benevides
May 20 at 14:06
add a comment |
I could fix it using these rules:
server
try_files $uri $uri/ @rewrite;
location @rewrite
rewrite ^/(.*)$ /index.php?_url=$1;
If you have location / without any instructions inside, remove it.
See also stackoverflow.com/questions/41908851/…
– MrWhite
May 20 at 20:26
add a comment |
I could fix it using these rules:
server
try_files $uri $uri/ @rewrite;
location @rewrite
rewrite ^/(.*)$ /index.php?_url=$1;
If you have location / without any instructions inside, remove it.
See also stackoverflow.com/questions/41908851/…
– MrWhite
May 20 at 20:26
add a comment |
I could fix it using these rules:
server
try_files $uri $uri/ @rewrite;
location @rewrite
rewrite ^/(.*)$ /index.php?_url=$1;
If you have location / without any instructions inside, remove it.
I could fix it using these rules:
server
try_files $uri $uri/ @rewrite;
location @rewrite
rewrite ^/(.*)$ /index.php?_url=$1;
If you have location / without any instructions inside, remove it.
answered May 20 at 18:15
Sandro BenevidesSandro Benevides
165
165
See also stackoverflow.com/questions/41908851/…
– MrWhite
May 20 at 20:26
add a comment |
See also stackoverflow.com/questions/41908851/…
– MrWhite
May 20 at 20:26
See also stackoverflow.com/questions/41908851/…
– MrWhite
May 20 at 20:26
See also stackoverflow.com/questions/41908851/…
– MrWhite
May 20 at 20:26
add a comment |
Thanks for contributing an answer to Server Fault!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fserverfault.com%2fquestions%2f968017%2fhow-to-convert-this-very-simple-htaccess-to-nginx%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown