问题标签 [rewrite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1318 浏览

asp.net - asp.net 中的 URL 重写丢失样式表映射

我注意到,当使用 iis 7.0 中的 URL 重写器时,根 url 字符“~”可以正常工作,但是当我用 global.asax 文件重写 url 时,文件不再正确映射。

为什么会这样?在使用 global.asax 重写 url 时,我该怎么做才能正确映射所有文件?

0 投票
2 回答
142 浏览

url - OpenID 和 URL 重写

我在我的 ASP.NET 站点上实现 OpenID 时遇到问题。当返回 URL 以 .aspx 结尾时,我的 OpenID 可以正常工作,但是每当我尝试将其返回到重写的 URL 时(http://example.com/return/实际上是http://example.com/return。 aspx)它不起作用。

我如何设置重写规则以便 OpenID 可以工作。

我正在使用 Intelligencia.UrlRewriter DLL

谢谢

0 投票
2 回答
2524 浏览

c# - 在运行时以编程方式重写映射规则

是否可以为 ASP.NET 3.5 以编程方式添加静态重写映射规则

我有:-

但想在运行时以编程方式添加这些?

0 投票
2 回答
1845 浏览

.net - .net Url 重写本地化,表单身份验证和 loginUrl 问题

我正在使用 HttpModule 重写多语言网站上的网址。在 HttpModule 中,我为 BeginRequest 事件添加了一个处理程序,并寻找包含文化名称的路径的第一部分。

例如,/fr-ca/index.aspx 将被重写为 /index.aspx 并将线程的文化和 ui 文化设置为 3084。这工作正常。

输入表单身份验证。表单身份验证仍然适用于未映射的 url,但如果用户未经授权,它将重定向到 web.config 的身份验证部分中设置的 loginUrl,并包含 ?ReturnUrl= 查询字符串参数以处理重定向回请求的用户通过身份验证后的页面。

如果用户请求使用非默认语言的页面,这里有两个问题:

  1. loginUrl 在重写之前忽略路径
  2. ReturnUrl 参数也忽略了原始路径。

它等效于 Request.Url.PathAndQuery 而不是 Request.RawUrl。

我不能在 AuthorizeRequest 事件中跳入管道,因为那时我必须防止所有可能的文化值,因为我正在使用一个具有多个位置路径的 web.config 文件。这也不能解决第一个问题。

我已经浏览了反射器中的 FormsAuthenticationModule,我看到了可以在哪里更改它以解决 #1 和 #2,但它当然是密封的。

我也浏览了很多,但我看不到任何可行的解决方案。

FormsAuthenticationModule 正在检查 UrlAuthorizationModule 中生成的 401 标头。如果您在 loginUrl 页面上查找引荐来源网址(为空),它会确认这一点。

有什么想法吗?

编辑#1

我正在使用 IIS 6,而 IIS 7 不是一个选项。

编辑#2

登录页面没有选择默认的文化/用户界面文化,因为当我生成本地资源(设计视图:工具 > 生成本地资源)时,IDE 将以下内容添加到页面指令中:

文化=“自动”元:资源键=“页面资源1”uiculture=“汽车”

在 vs.net 2008 中注意这一点!至少这解决了未引用默认文化的问题之一,但 #1 和 #2 仍然很突出。

编辑 3

我希望我可以跳入其中一个管道事件来进行自己的重定向,但是在反映 System.Web.Security.UrlAuthorizationModule OnEnter 方法中,我了解到一旦设置了 401 标头,该方法就会调用 application.CompleteRequest,它正如您所猜到的,将我们带到 EndRequest 事件。这就是FA模块跳进做重定向的东西,我怕跳到前面做自己的重定向!我很惊讶没有更多的人遇到这个问题,或者他们可能还没有加入。


例子:

我在受表单身份验证保护的物理文件夹 /members/ 中有一个成员部分。

在 web.config 中,我有:

和...

当未经身份验证的用户请求 /members/ 的索引页面时,他们会被 FormsAuthenticationModule 从上面的身份验证部分重定向到 loginUrl。它还将 ?ReturnUrl 参数附加到请求的页面。

如果用户使用默认文化浏览网站,这很好用,但我的 HttpModule 根据路径第一部分中存在的文化名称设置文化。

因此,/fr-ca/members/index.aspx 被重写为 /members/index.aspx 并将文化/ui 文化设置为加拿大法语。不幸的是,FormsAuthenticationModule 使用重写的 url 将用户发送到 loginUrl 页面,而不是原来的。因此,文化设置丢失并且重定向 url 不正确。

希望对@Greg有帮助

0 投票
2 回答
106590 浏览

.htaccess - 使用 .htaccess 重写文件夹名称

我想知道是否可以.htaccess用来重写文件夹名称。我的意思是这个。

可以说我有一个像这样的网址:

现在我想将网址重写为(例如)

folder1 是我的网络空间上的现有文件夹。

重要:“苹果”不是一个文件夹,而只是一个名字!

好的,这是一个分步计划:

  1. 用户类型www.site.com/folder1/login.php
  2. url 应该重写而不是将 url 重定向到www.site.com/apple/login.php

这意味着这apple只是一个名称而不是目录。所有代码都应该来自folder1。Acutally apple 应该只是folder1. 我不能只是重命名folder1Apple. 因此,我将重写folder1apple.

0 投票
2 回答
1481 浏览

php - 在php中实现永久链接的有效方法

实现 php 驱动的永久链接最有效的方法是什么?

基本上我想将数据库访问减少到最低限度。

重定向到存储在数据库中的 id 的最佳方法是什么?

0 投票
1 回答
876 浏览

zend-framework - 重写路由以映射到默认路由

因为我在这里遇到的问题:Zend_Controller_Router_Exception: “xyz” is not specified

我想要这条路线:

并将其映射到此:

Zend 框架有没有可能做到这一点?我不想将浏览器转发到该 URL。我只想告诉 Zend Framework 如何处理这条路线。

至于我想这样做的原因,您可以在链接的 SO 问题中找到它们。

0 投票
1 回答
1153 浏览

apache - Zend Framework 自定义路由根本不起作用

ZF 有一个非常奇怪的问题(至少对于 ZF 新手而言):我无法访问我现有的控制器及其操作方法。

没有问题: localhost/
localhost/index
localhost/index/index
localhost/index/about

但是,我设置了这样的路由:/localhost/test,指向索引控制器和 indexAction,每次访问它时都会看到 404。

404 不是 zf 的处理程序(至少看起来像这样),我在那里得到了带有我的 apache 和 php 版本的普通旧 apache2 notfound 页面。在此类请求的错误日志中,我看到:“文件不存在:/var/www/test”

引导路由初始化:

类 Bootstrap 扩展 Zend_Application_Bootstrap_Bootstrap { protected function _initDoctype() {

据我所知,问题可能出在 apache2 上。.htacess 是默认的,就像在文档中一样。就这个:

谢谢

0 投票
1 回答
659 浏览

url - II7 重写问题 - 不包括页面

大家好,我有一个关于 IIS7 重写的问题。

我想知道是否有办法为重新编写 url 设置条件。我想重写:

http://www.domain.com/user.aspx?id=username

成为

http://www.domain.com/username/

我也有

http://www.domain.com/article.aspx http://www.domain.com/login.aspx

我希望那些成为

http://www.domain.com/article/ http://www.domain.com/login/

我遇到的问题是,如果我为用户名设置重写,则重写文章和登录中断。

我需要以某种方式将那些从用户名重写中排除,以便它们可以自己处理。

这是我当前的代码,我现在将用户名重写为 /user/username:

0 投票
2 回答
1524 浏览

.htaccess - 在虚拟主机情况下将子域重写为子域/文件夹

我正在尝试重写abc.example.com/pathabc.example.com/index.php/abc/path使用以下.htaccess:

情况是:

我不想index.php/abc/显示在 URL 中。

有人有什么建议吗?