尝试修改HTML页面的URL显示

时间:2019-05-07 21:59:13

标签: .htaccess url-rewriting

我想做的是提供一个文件,例如“ boat-repair”,并让网址读取allservicemarine.com/boat-repair/electrical-system-repair 到目前为止,我发现的所有内容似乎都引用了PHP文件,因为使用html文件可以实现此过程,如果可以的话,该如何实现?

此代码:

function arrayOfObjects() {
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getSheetByName('DocData');
  var rg=sh.getDataRange()
  var vA=rg.getValues();
  var lA=vA[0];
  var rA=[];
  for(var i=0;i<vA.length;i++) {
    var rObj={};
    for(var j=0;j<vA[i].length;j++) {
      rObj[lA[j]]=vA[i][j];
    }
    rA.push(rObj);
  }
  return rA;
}

function displayArray(rA) {
  var html="<style>td,th{border:1px solid black;}</style><table>";
  for(var i=1;i<rA.length;i++) {
    if(i==1) {
      html+=Utilities.formatString('<tr><th>%s</th><th>%s</th><th>%s</th><th>%s</th></tr>',rA[i].project,rA[i].type,rA[i].weight,rA[i].first);
    }else{
      html+=Utilities.formatString('<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>',rA[i].project,rA[i].type,rA[i].weight,rA[i].first);
    }
  }
  html+='</table>';
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, 'My Object');
}

function runOne() {
  displayArray(arrayOfObjects());
}

当您输入allservicemarine.com时将提供文件 我尝试将目标文件放在一系列子目录中,希望目录名称显示在地址栏中,但这仍会拉出目标文件。我一直在寻找很多时间来尝试寻找解决方案,如果有人能指出正确的方向完成任务,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是我想出的有效代码:

  RewriteEngine On
  RewriteRule    ^/?$    /boat-repair/electrical-system-repair  [NC]
  RewriteRule    ^boat-repair/electrical-system-repair/?$    /index.html [NC]

第一个规则告诉服务器启动:输入根目录后,进行boat-repair / electrical-system-repair。

第二条规则告诉服务器是否匹配以下模式:boat-repair / electrical-system-repair以提供index.html

在最后一步中加载的文件(index.html)可以命名为任意名称,因为它将加载,但不会显示在地址栏中。

因此,在执行完这两个规则之后,您将获得:http://yoursitename.com/boat-repair/electrical-system-repair/在地址栏中,现在我只需要找出一种删除尾部斜杠的方法即可。

这些规则当然会放在htaccess文件中。

要使其正常工作,即使它们只是虚拟文件夹,也必须具有规则中命名的文件夹。如果要使用虚拟文件夹,请确保在每个名为“请勿删除此文件夹”的文件夹中放置一个文本文档,以便在六个月后不要查看这些空文件夹并将其删除!