| <!-- |
| Licensed to the Apache Software Foundation (ASF) under one |
| or more contributor license agreements. See the NOTICE file |
| distributed with this work for additional information |
| regarding copyright ownership. The ASF licenses this file |
| to you under the Apache License, Version 2.0 (the |
| "License"); you may not use this file except in compliance |
| with the License. You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, |
| software distributed under the License is distributed on an |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, either express or implied. See the License for the |
| specific language governing permissions and limitations |
| under the License. |
| --> |
| |
| <html> |
| <head> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <title>Trim URLs</title> |
| <link rel="stylesheet" href="doc.css"> |
| </head> |
| <body> |
| <!--#include virtual="_header.html" --> |
| |
| |
| <div id=content> |
| <h1>Trim URLs</h1> |
| <h2>Configuration</h2> |
| <p> |
| The 'Trim URLs' filter is enabled by specifying: |
| <dl> |
| <dt>Apache:<dd><pre class="prettyprint" |
| >ModPagespeedEnableFilters trim_urls</pre> |
| <dt>Nginx:<dd><pre class="prettyprint" |
| >pagespeed EnableFilters trim_urls;</pre> |
| </dl> |
| <p> |
| in the configuration file. |
| </p> |
| |
| <h2>Description</h2> |
| <p> |
| This filter trims URLs by resolving them by making them relative to the base |
| URL for the page. E.g. on <code>http://www.example.com/</code>, |
| <code>"http://www.example.com/foo"</code> would be shortened to |
| <code>"foo"</code>. The filter works only on URLs that are the values |
| specified by <code>src</code> or <code>href</code> attributes. |
| It also trims image URLs in CSS if |
| <a href="filter-css-rewrite"><code>rewrite_css</code></a> is enabled. |
| </p> |
| <p> |
| The filter reduces the transfer size of HTML files by shortening most of the |
| URLs. Depending on the HTML file, this filter can significantly reduce the |
| number of bytes transmitted on the network. |
| </p> |
| |
| <h2>Operation</h2> |
| <p> |
| The 'Trim URLs' filter removes unnecessary bytes on the wire. While it's |
| useful for development to fully specify your URLs so that links don't break when |
| things move around, these are bytes that are sent unnecessarily on the wire. |
| </p> |
| <p> |
| For example, if the HTML document looks like this: |
| </p> |
| <pre class="prettyprint"> |
| <html> |
| <head> |
| <base href="http://www.example.com/"> |
| </head> |
| <body> |
| <a href="http://www.example.com/bar">Link with long URL</a> |
| <img src="http://www.othersite.example.org/image.jpg"> |
| </body> |
| </html> |
| </pre> |
| <p> |
| Then PageSpeed will rewrite it to: |
| </p> |
| <pre class="prettyprint"> |
| <html> |
| <head> |
| <base href="http://www.example.com/"> |
| </head> |
| <body> |
| <a href="bar">Link with long URL</a> |
| <img src="//www.othersite.example.org/image.jpg"> |
| </body> |
| </html> |
| </pre> |
| |
| <h3>Example</h3> |
| <p> |
| You can see the filter in action at <code>www.modpagespeed.com</code> on this |
| <a href="https://www.modpagespeed.com/examples/trim_urls.html?ModPagespeed=on&ModPagespeedFilters=trim_urls">example</a>. |
| </p> |
| |
| <h2>Requirements</h2> |
| <p> |
| Only URLs referenced by <code>href</code> and <code>src</code> attributes and, |
| if <a href="filter-css-rewrite"><code>rewrite_css</code></a> is enabled, |
| URLs in CSS files are rewritten. URLs that occur elsewhere are not altered. |
| </p> |
| |
| <h2>Risks</h2> |
| <p> |
| Trimming URLs is considered medium risk. It can cause problems if it uses |
| the wrong base URL. This can happen, for example, if you serve HTML that |
| will be pasted verbatim into other HTML pages. If URLs are trimmed on the |
| first page, they will be incorrect for the page they are inserted into. |
| For this reason, it is off by default. |
| </p> |
| |
| |
| </div> |
| <!--#include virtual="_footer.html" --> |
| </body> |
| </html> |