GVKun编程网logo

Express中的子文件夹样式路由(express文档)

8

在本文中,我们将详细介绍Express中的子文件夹样式路由的各个方面,并为您提供关于express文档的相关解答,同时,我们也将为您带来关于.htaccess将所有子文件夹内容(有和没有结束斜杠)re

在本文中,我们将详细介绍Express中的子文件夹样式路由的各个方面,并为您提供关于express文档的相关解答,同时,我们也将为您带来关于.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹、.htaccess:如何删除URL中的子文件夹的子文件夹?、angularjs – 如何用jwt保护express中的静态文件夹、Apache mod_rewrite一个子文件夹的子文件夹(通过内部redirect)的有用知识。

本文目录一览:

Express中的子文件夹样式路由(express文档)

Express中的子文件夹样式路由(express文档)

我想解析这样的简单路线:

http://example.com/foo/bar/baz/

在理论上对它们的数量没有限制。并从中获得一个数组会很好[''foo'',''bar'',''baz'']

如何使用Express路由?

答案1

小编典典

使用正则表达式。

app.get(/^\/((?:[^\/]+\/?)+)\//, function(req, res) {  res.send(req.params[0].split(''/''));});app.listen(8080);

运行它,然后

$ curl localhost:8080/foo/bar/baz/["foo","bar","baz"]

.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹

.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹

我想redirect以下url:

/gallery/image-1/ /gallery/image-1 /gallery/image-2/ /gallery/image-2

到/gallery/ ,但它比它看起来更难。 这是来自.htaccess:

RewriteEngine On RewriteRule ^gallery/(.*) /gallery/ [R=301,L,NC]

所有url最初都被redirect到/gallery/ ,但是它只是继续加载,显然这个url也在^gallery/(.*)之下,所以它会一直redirect到同一个URL。 几秒钟后,浏览器给我一个ERR_TOO_MANY_REDIRECTS消息。

如何编辑^gallery/(.*)语句以仅覆盖/gallery/ URL之后的某个URL?

htaccess重写到子域

htaccess自动检测域名

需要在.htaccess重写规则中转义#(哈希/磅)字符

当数据库中缺less项目时,PHP或htaccess使dynamicURL页面去404

请求超过了10个内部redirect的限制

503 htaccess文件只能部分工作

使用GET参数时,Apache Redirect 301失败,例如?blah =

recursionmod_rewritesearch引擎友好的url

如何将symfony /web/app.PHP移动到/root/app.PHP

Apache重写所有的pathindex.PHP

你应该在你的正则表达式中使用.+而不是.*来确保在URI为/gallery/时停止重定向:

RewriteEngine On RewriteRule ^(gallery)/.+$ /$1/ [R=301,NC]

总结

以上是小编为你收集整理的.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

.htaccess:如何删除URL中的子文件夹的子文件夹?

.htaccess:如何删除URL中的子文件夹的子文件夹?

我正在尝试将此urlwww.domain.com/~usernameredirect到www.domain.com/~username/public但从url中删除/public 。

这是我的.htaccess文件

<IfModule mod_rewrite.c> RewriteEngine on RewriteBase /~username/ RewriteRule !^public/ public%{REQUEST_URI} [L] RewriteCond %{THE_REQUEST} ^GET /public/ RewriteRule ^public/(.*) /$1 [L,R=301] </IfModule>

但是我得到这个错误:

Not Found The requested URL /~username/public/~username/ was not found on this server.

任何帮助感激!

htaccess重写URL像stackoverflow

.htaccessurl重写和删除%20

根据apache envvariables,有条件地要求HTTPauthentication

从url去除参数,使一个友好的Url htaccess

翻译的urlpath来查询Nginx的参数

IP限制与htaccess

如何在.htaccess中从一个子域redirect到另一个子域?

Apache 2.4 – 由于可能的configuration错误,请求超过了10个内部redirect的限制

301通过.htaccess将查询stringredirect到SEO友好的URL

在htaccess中重写规则将查询string转换成斜杠PHP

你可以试试这个代码:

RewriteEngine on RewriteBase /~username/ RewriteCond %{THE_REQUEST} ^GET /public/ [NC] RewriteRule ^public/(.*)$ $1 [L,R=301,NE] RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

总结

以上是小编为你收集整理的.htaccess:如何删除URL中的子文件夹的子文件夹?全部内容。

如果觉得小编网站内容还不错,欢迎将小编网站推荐给好友。

angularjs – 如何用jwt保护express中的静态文件夹

angularjs – 如何用jwt保护express中的静态文件夹

我有应用程序,它建立在nodejs和 angularjs上,我使用基于jwt令牌的身份验证进行身份验证,并且api调用正常工作

即使用户现在没有登录,应用程序也会为所有静态资源提供服务,如果用户没有登录并将用户重定向到登录页面,如何避免加载应用程序

最后我能够在app.js floder中找到它,添加代码sinpet
     app.use(‘/ app / view / *’,function(req,res,next){

if (!req.headers['authorization'] ) {
      res.sendfile('app/views/Error.html');

    } else {
      next();
    }
  });

对于来自/ app / view / check的请求,这意味着请求的标头是否包含使用jwt生成的令牌

解决方法

如果您的JWT存储在cookie中,您可以使用这样的道路:

router.all('/*',next){
  if (!req.cookies.session) {
    return res.json("ERROR");
  }
  else {
    ValidateCookieFunction(req.cookies.session,function(auth_state) {
      if (!auth_state)
          return res.json("ERROR");
      else
          next();
    });
  }
});

否则你可以在HTTP-Header中提供你的JWT

router.all('/*',next){
  if (!req.headers['x-access-token']) {
    return res.json("ERROR");
  }
  else {
    ValidateJWTFunction(req.headers['x-access-token'],function(auth_state) {
      if (!auth_state)
          return res.json("ERROR");
      else
          next();
    });
  }
});

Apache mod_rewrite一个子文件夹的子文件夹(通过内部redirect)

Apache mod_rewrite一个子文件夹的子文件夹(通过内部redirect)

我试图编写一套mod_rewrite规则,允许我的用户使用一个文件夹在不同的项目上进行开发,而不必为每个项目添加虚拟主机。

我的想法是为每个需要这个能力的用户(只有3-4个)设置一个“全球VHost”,这个虚拟主机就像.my-domain.com。 从那里,我想促进我的用户编写代码,就好像它在一个域,而不是在一个子文件夹。 例如,如果bob正在开发一个名为“gnome”的项目,那么我需要加载URL链接(以及内部networking上的其他人)来访问该项目: http://gnome.bob.my- domain.com 。 但是,我希望Apache做的事情是认识到“gnome”是一个“项目”,因此将内部请求映射到bob.my-domain.com/gnome/。

我有我认为会工作,这很简单,但是..它不工作! 请求只是进入一个无限循环,并将子域的前缀保留在重写的请求URI上。

我有的mod重写代码是:

apache htaccess重写URL友好的SEO

如何激活mod_rewrite?

仅在文件不存在时重写

URL重写(SLUG)和URLredirect(htaccess)

Mod_ReWrite / ReWriteMap使用数据库查找脚本的URL

RewriteEngine On RewriteCond %{HTTP_HOST} ^([^.]+).bob.my-domain.com RewriteCond %{REQUEST_URI} !^/%1.* RewriteRule ^(.*)$ /%1/$1 [L]

我已经search了一下这个,但我还没有find任何真正的解决scheme。 有没有人尝试过 – 或者,有没有人有更好的主意? 一个不涉及为每个项目制作虚拟主机(我有devise师..我想每个人都会同意devise师不应该使虚拟主机..)

谢谢!

这是来自rewrite_log的片段:

[rid#838dc88/initial] (3) [perdir /home/bob/http/] strip per-dir prefix: /home/bob/http/index.html -> index.html [rid#838dc88/initial] (3) [perdir /home/bob/http/] applying pattern '^(.*)$' to uri 'index.html' [rid#838dc88/initial] (4) [perdir /home/bob/http/] RewriteCond: input='gnome.bob.my-domain.com' pattern='^([^.]+).bob.my-domain.com' => matched [rid#838dc88/initial] (4) [perdir /home/bob/http/] RewriteCond: input='/index.html' pattern='!^/%1.*' => matched [rid#838dc88/initial] (2) [perdir /home/bob/http/] rewrite 'index.html' -> '/gnome/index.html' [rid#838dc88/initial] (1) [perdir /home/bob/http/] internal redirect with /gnome/index.html [INTERNAL REDIRECT] [rid#8392f30/initial/redir#1] (3) [perdir /home/bob/http/] strip per-dir prefix: /home/bob/http/gnome/index.html -> gnome/index.html [rid#8392f30/initial/redir#1] (3) [perdir /home/bob/http/] applying pattern '^(.*)$' to uri 'gnome/index.html' [rid#8392f30/initial/redir#1] (4) [perdir /home/bob/http/] RewriteCond: input='gnome.bob.my-domain.com' pattern='^([^.]+).bob.my-domain.com' => matched [rid#8392f30/initial/redir#1] (4) [perdir /home/bob/http/] RewriteCond: input='/gnome/index.html' pattern='!^/%1.*' => matched [rid#8392f30/initial/redir#1] (2) [perdir /home/bob/http/] rewrite 'gnome/index.html' -> '/gnome/gnome/index.html' [rid#8392f30/initial/redir#1] (1) [perdir /home/bob/http/] internal redirect with /gnome/gnome/index.html [INTERNAL REDIRECT] [rid#8397970/initial/redir#2] (3) [perdir /home/bob/http/] add path info postfix: /home/bob/http/gnome/gnome -> /home/bob/http/gnome/gnome/index.html

这只是一个片段,在apache达到其重写限制之前,有几十或者100行的apache基本上将/gnome/index.html重写为/gnome/gnome/gnome/gnome/gnome/index.html等,放弃,并抛出错误500

CodeIgniter PHP的Apache 500内部服务器错误

dynamic重写htaccess文件

Apache的SSLredirect使用mod_rewrite

更改Cookie域

我如何在.htaccess文件中定义variables并使用它?

在忽略这个问题几年之后,我终于找到了一个可行的解决方案。

RewriteEngine on RewriteCond %{HTTP_HOST} ^([^.]+).bob.my-domain.com RewriteCond %1::%{REQUEST_URI} !^(.*?)::/1/ RewriteRule ^(.*)$ /%1/$1 [L]

我发现在以后的RewriteConditions的ConditionPattern参数中没有提供以前RewriteCond方向的反向引用。 如果您想使用先前RewriteCond指令的反向引用,则只能在TestString参数中使用它。

上面的指令将第一个RewriteCond指令中匹配的子域前置到RequestURI,由::分隔。 然后,我们在RewriteCond测试字符串(正则表达式)中做的是重新捕获子域名,然后检查以确保我们的实际的RequestURI不是以该子域作为在相同正则表达式中使用反向引用的文件夹开始的。

这听起来比实际上更令人困惑,我不能拿出信用来发现答案。 我在这里找到了答案,作为对另一个问题的回应, RewriteCond里面的%N反向引用 。 感谢Jon Lin回答这个问题,对他不了解,也是我的问题!

你可能想检查

http://httpd.apache.org/docs/2.2/vhosts/mass.html

它处理您遇到的DocumentRoot问题。

规则就是这样的

VirtualDocumentRoot /var/www/%1/

你可以改变%1来适应你( http://httpd.apache.org/docs/2.0/mod/mod_vhost_alias.html )

干杯

一些问题:

你说“内部映射” – 你不想使用重定向?

你使用相同的VirtualHost gnome.bob.mysite.com和bob.mysite.com

你记得为*.bob.mysite.com创建一个serverAlias吗?

这是一个粗略的版本,你可以修改工作。 它将捕获子域和请求的URL,并将子域作为路径的第一部分,然后是请求的路径,然后是查询字符串,重定向到主域。

serverName www.mysite.com serverAlias *.mysite.com RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9-]+)\.mysite.com$ RewriteRule ^/(.*) http://www.mysite.com/%1/$1 [R=301,L]',

你有没有尝试过使用另一个重写规则来处理之前呢?

RewriteEngine On RewriteCond %{HTTP_HOST} ^([^.]+).bob.my-domain.com RewriteCond %{REQUEST_URI} !^/%1.* RewriteRule ^(.*)$ /%1/$1 [C] RewriteRule ^/(.*).bob.my-domain.com/(.*) /$1/$2 [L]

但我认为你的更大的问题是,你的服务器不知道它是以不同的名字服务。

它认为它运行在/ gnome /目录,而浏览器运行在/目录中。 所以,你有任何相对的URL将会导致问题。

你需要的是一个过滤器,它将通过处理器运行你的页面中的所有URL,并将它们从/ gnome /更改为/。

今天关于Express中的子文件夹样式路由express文档的介绍到此结束,谢谢您的阅读,有关.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹、.htaccess:如何删除URL中的子文件夹的子文件夹?、angularjs – 如何用jwt保护express中的静态文件夹、Apache mod_rewrite一个子文件夹的子文件夹(通过内部redirect)等更多相关知识的信息可以在本站进行查询。

本文标签: