mirror of
https://github.com/tiennm99/lombok.git
synced 2026-10-15 14:16:39 +00:00
htaccess dynamically generated to canonicalize all web requests.
This commit is contained in:
1 parent
3cf73930c3
commit
1772fa9d86
3 files changed
+68
-13
No files matched your search
@@ -76,7 +76,6 @@ such as applying the templates to produce the website, converting the changelog
|
||||
<include name="LICENSE" />
|
||||
</fileset>
|
||||
</copy>
|
||||
<copy file="website/extra/htaccess" tofile="build/website/.htaccess" />
|
||||
<java classname="lombok.website.WebsiteMaker" failonerror="true">
|
||||
<classpath>
|
||||
<path refid="build.path" />
|
||||
|
||||
@@ -220,11 +220,24 @@ public class WebsiteMaker {
|
||||
convertDownloadEdge(freemarkerConfig, out);
|
||||
}
|
||||
|
||||
public void buildHtAccess(File out) throws Exception {
|
||||
Configuration freemarkerConfig = new Configuration(Configuration.VERSION_2_3_25);
|
||||
freemarkerConfig.setEncoding(Locale.ENGLISH, "UTF-8");
|
||||
freemarkerConfig.setOutputEncoding("UTF-8");
|
||||
freemarkerConfig.setOutputFormat(HTMLOutputFormat.INSTANCE);
|
||||
freemarkerConfig.setTemplateLoader(createLoader("extra"));
|
||||
freemarkerConfig.setTemplateExceptionHandler(TemplateExceptionHandler.RETHROW_HANDLER);
|
||||
|
||||
outputDir.mkdirs();
|
||||
convertHtAccess(freemarkerConfig, out);
|
||||
}
|
||||
|
||||
public void buildWebsite() throws Exception {
|
||||
Configuration freemarkerConfig = makeFreemarkerConfig();
|
||||
|
||||
outputDir.mkdirs();
|
||||
convertTemplates(freemarkerConfig);
|
||||
buildHtAccess(new File(outputDir, ".htaccess"));
|
||||
}
|
||||
|
||||
private TemplateLoader createLoader() throws IOException {
|
||||
@@ -235,6 +248,30 @@ public class WebsiteMaker {
|
||||
return new FileTemplateLoader(new File(baseDir, base));
|
||||
}
|
||||
|
||||
private void convertHtAccess(Configuration freemarker, File outFile) throws Exception {
|
||||
Map<String, Object> dataModel = new HashMap<String, Object>();
|
||||
dataModel.put("setupPages", listHtmlNames(new File(outputDir, "setup")));
|
||||
dataModel.put("featurePages", listHtmlNames(new File(outputDir, "features")));
|
||||
dataModel.put("experimentalPages", listHtmlNames(new File(outputDir, "features/experimental")));
|
||||
Template template = freemarker.getTemplate("htaccess");
|
||||
FileOutputStream fileOut = new FileOutputStream(outFile);
|
||||
try {
|
||||
Writer wr = new BufferedWriter(new OutputStreamWriter(fileOut, "UTF-8"));
|
||||
template.process(dataModel, wr);
|
||||
wr.close();
|
||||
} finally {
|
||||
fileOut.close();
|
||||
}
|
||||
}
|
||||
|
||||
private List<String> listHtmlNames(File dir) {
|
||||
List<String> out = new ArrayList<String>();
|
||||
for (String s : dir.list()) {
|
||||
if (s.endsWith(".html") && !s.equals("index.html")) out.add(s.substring(0, s.length() - 5));
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
private void convertChangelog(Configuration freemarker, File outFile) throws Exception {
|
||||
Map<String, Object> dataModel = createBasicDataModel();
|
||||
|
||||
|
||||
+31
-12
@@ -1,17 +1,36 @@
|
||||
RewriteEngine On
|
||||
RewriteRule ^features/all$ /features/index.html [L,END]
|
||||
RewriteRule ^features/index(\.html)?$ /features/index.html [L,END]
|
||||
RewriteRule ^features/experimental/all$ /features/experimental/index.html [L,END]
|
||||
RewriteRule ^features/experimental/index(\.html)?$ /features/experimental/index.html [L,END]
|
||||
RewriteRule ^features/.*\.html$ - [L,END]
|
||||
RewriteRule ^features/(.*)$ /features/$1.html [L,END]
|
||||
RewriteRule ^features$ /features/index.html [L,END]
|
||||
RewriteRule ^features/experimental$ /features/experimental/index.html [L,END]
|
||||
RewriteRule ^changelog$ /changelog.html [L,END]
|
||||
|
||||
RewriteRule ^$ /main.html [L,END]
|
||||
RewriteRule ^index(\.html)?$ /main.html [L,END]
|
||||
RewriteRule ^(index|home)(\.html)?$ / [NC,RC=301]
|
||||
|
||||
RewriteRule ^changelog$ /changelog.html [L,END]
|
||||
RewriteRule ^changelog(\.html)?$ /changelog [NC,R=301]
|
||||
RewriteRule ^credits$ /credits.html [L,END]
|
||||
RewriteRule ^credits(\.html)?$ /credits [NC,R=301]
|
||||
RewriteRule ^download$ /download.html [L,END]
|
||||
RewriteRule ^download(\.html)?$ /download [NC,R=301]
|
||||
RewriteRule ^all-versions$ /all-versions.html [L,END]
|
||||
RewriteRule ^setup/.*\.html$ - [L,END]
|
||||
RewriteRule ^setup/(.*) /setup/$1.html [L,END]
|
||||
RewriteRule ^all-versions(\.html)?$ /all-versions [NC,R=301]
|
||||
|
||||
<#list setupPages as pg>
|
||||
RewriteRule ^setup/${pg?no_esc}$ /setup/${pg?no_esc}.html [L,END]
|
||||
RewriteRule ^setup/${pg?no_esc}(\.html)?$ /setup/${pg?no_esc} [NC,R=301]
|
||||
</#list>
|
||||
|
||||
RewriteRule ^features/all$ /features/index.html [L,END]
|
||||
RewriteRule ^features(/all)?$ /features/all [NC,R=301]
|
||||
RewriteRule ^features/index(\.html)?$ /features/all [NC,R=301]
|
||||
|
||||
<#list featurePages as pg>
|
||||
RewriteRule ^features/${pg?no_esc}$ /features/${pg?no_esc}.html [L,END]
|
||||
RewriteRule ^features/${pg?no_esc}(\.html)?$ /features/${pg?no_esc} [NC,R=301]
|
||||
</#list>
|
||||
|
||||
RewriteRule ^features/experimental/all$ /features/experimental/index.html [L,END]
|
||||
RewriteRule ^features/experimental(/all)?$ /features/experimental/all [NC,R=301]
|
||||
RewriteRule ^features/experimental/index(\.html)?$ /features/experimental/all [NC,R=301]
|
||||
|
||||
<#list experimentalPages as pg>
|
||||
RewriteRule ^features/experimental/${pg?no_esc}$ /features/experimental/${pg?no_esc}.html [L,END]
|
||||
RewriteRule ^features/experimental/${pg?no_esc}(\.html)?$ /features/experimental/${pg?no_esc} [NC,R=301]
|
||||
</#list>
|
||||
Reference in new issue
Block a user