dubstep
November 30, 2011, 6:06pm
#1
Hello,
I have found the following while searching it is the only one i can
get working with my config setup
to send a 301 permanently if “/index.php” is directly accessed.
if ($request_uri ~* ^(/home(/index)?|/index(.php)?)/?$)
{
rewrite ^(.*)$ / permanent;
}
GET http://www.example.com/index.php 301 Moved Permanently
GET http://www.example.com/ 200 OK
above works as expected.
But, now if i have the following results as 200 OK as expected.
http://www.example.com/index.php?randomvalue 200 OK
So how do you rewrite that if there is a question mark and or value
that follows “/index.php?” then returns 301.
GET http://www.example.com/index.php?randomvalue 301 Moved
Permanently
GET http://www.example.com/ 200 OK
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,219385,219385#msg-219385
token
November 30, 2011, 6:13pm
#2
On 30 Nov 2011 17h06 WET, [email protected] wrote:
}
http://www.example.com/index.php?randomvalue 200 OK
So how do you rewrite that if there is a question mark and or value
that follows “/index.php?” then returns 301.
GET http://www.example.com/index.php?randomvalue 301 Moved
Permanently
GET http://www.example.com/ 200 OK
Try:
location = /index.php {
return 301 /;
}
— appa
token
November 30, 2011, 6:47pm
#3
On 30 Nov 2011 17h19 WET, [email protected] wrote:
Thanks for suggestion appa, i apply what said to try and results in
a “Redirection Loop”.
Hello,
I have found the following while searching it is the only one i can
get working with my config setup
to send a 301 permanently if “/index.php” is directly accessed.
Remove/comment out the if below and try:
http {
map $redirect_direct_access $request_uri {
default 0;
~/index(.php)? 1;
~/home(/index)? 1;
}
}
server {
server_name www.example.com ;
root /path/to/root;
location / {
if ($redirect_direct_access) {
return 301 /;
}
}
}
if ($request_uri ~* ^(/home(/index)?|/index(.php)?)/?$)
{
rewrite ^(.*)$ / permanent;
}
— appa
token
November 30, 2011, 6:52pm
#4
Thanks for suggestion appa, i apply what said to try and results in a
“Redirection Loop”.
}
http://www.example.com/index.php?randomvalue 200 OK
So how do you rewrite that if there is a question mark and or value
that follows “/index.php?” then returns 301.
GET http://www.example.com/index.php?randomvalue 301 Moved
Permanently
GET http://www.example.com/ 200 OK
Try:
location = /index.php {
return 301 /;
}
Update,
I am using
if ($request_uri ~* ^/index.php(.)$){
rewrite ^(. )$ / permanent;
}
The above resuls as which dose the 301 moved permanently with the
exception of retaining the the question and the the value.
I guess from a search engines point of view its see’s the 301 Moved
Permanently so in that case it ok, but it would be nice to not retain
the “?randomvalue”.
http://www.example.com/index.php?randomvalue 301 Moved
Permanently
http://www.example.com/?randomvalue 200 OK
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,219385,219391#msg-219391
token
November 30, 2011, 6:19pm
#5
Thanks for suggestion appa, i apply what said to try and results in a
“Redirection Loop”.
}
http://www.example.com/index.php?randomvalue 200 OK
So how do you rewrite that if there is a question mark and or value
that follows “/index.php?” then returns 301.
GET http://www.example.com/index.php?randomvalue 301 Moved
Permanently
GET http://www.example.com/ 200 OK
Try:
location = /index.php {
return 301 /;
}
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,219385,219388#msg-219388
token
November 30, 2011, 7:13pm
#6
token Wrote:
GET http://www.example.com/ 200 OK
Try:
rewrite ^(.*)$ / permanent;
http://www.example.com/index.php?randomvalue 301
Moved Permanently
http://www.example.com/?randomvalue 200 OK
Final Update, Resolved
if ($request_uri ~* ^/index.php(.)$){
rewrite ^(. )$ /? permanent;
}
Seems to work now
Posted at Nginx Forum:
http://forum.nginx.org/read.php?2,219385,219392#msg-219392