annotate xml/en/docs/faq_trailing_slash_redirect.xml @ 155:d8a53dda98a7

- Adding more faq's
author Andrey Alexeev <andrew@nginx.com>
date Wed, 26 Oct 2011 13:20:00 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
155
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
1 <!DOCTYPE article SYSTEM "../../../dtd/article.dtd">
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
2
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
3 <article name="What is the right way to do a trailing slash
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
4 redirect for the requests without a
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
5 trailing slash in the URI?"
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
6 link="/en/docs/faq_trailing_slash_redirect.html"
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
7 lang="en">
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
8
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
9 <section>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
10
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
11 <para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
12 <initial>Q:</initial>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
13 What is the right way to do a trailing slash redirect for the
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
14 requests without a trailing slash in the URI?
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
15 </para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
16
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
17 <para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
18 <initial>A:</initial>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
19 If the URI refers to a static file or a directory then nginx
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
20 will do the redirect automatically. If it's not a static
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
21 content and REQUEST_URI should be proxied to the backends,
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
22 the following configuration will work:
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
23 </para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
24
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
25 <para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
26 <example>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
27 location ~* /[^/\.]+$ {
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
28 rewrite ^(.*)$ http://$http_host$1/ permanent;
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
29 }
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
30 </example>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
31 </para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
32
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
33 <para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
34 However, a better way of doing that would be separating
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
35 static content and proxying:
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
36 </para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
37
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
38 <para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
39 <example>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
40 location / {
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
41     index index.php;
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
42     try_files $uri $uri/ /index.php?$args;
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
43 }
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
44
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
45 location ~ (?<URL>^.*/[^/.]+$) {
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
46     return 301 http://$host$url/$is_args$args;
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
47 }
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
48
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
49 location ~ \.php$ {
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
50 ...
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
51 }
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
52 </example>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
53 </para>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
54
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
55 </section>
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
56
d8a53dda98a7 - Adding more faq's
Andrey Alexeev <andrew@nginx.com>
parents:
diff changeset
57 </article>