问题标签 [url-rewriting]
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.
url - 如何配置可选或“无关”的 URL?
您将如何配置/处理无关/可选的 URL 实体(可能是别名)?
SO 就是一个很好的例子:
- stackoverflow.com/questions/99999999/
- stackoverflow.com/questions/99999999/ question-goes-here(不好的例子,但我想不出更好的例子)
亚马逊 URL 更加令人困惑(例如Kindle)
- amazon.com/gp/product/B000FI73MA/
- amazon.com/ Kindle-Amazons-Wireless-Reading-Device /dp/B000FI73MA/
[编辑] 这可能不是最好的行动计划,但我真的在问这个问题,而不是任何单个服务器。
asp.net - Can I use commas in a URL?
I typically use URL rewriting to pass content IDs to my website, so this
rewrites to
For a specific application I need to pass in multiple IDs to a single page, so I've rewritten things to accept this:
This works fine in Cassini (the built-in ad hoc web server for Visual Studio) but gives me "Internet Explorer cannot display the webpage" when I try it on a live server running IIS. Is this an IIS limitation? Should I just use dashes or underscores instead of commas?
url - URL 重写 - 国际信件
我应该如何格式化带有特殊/国际字符的 URL?
目前,我尝试使 URL “看起来不错”,以便:
转换为:
我知道可以转换一些国际字母(ü = ue,æ = ae,å = aa),可以删除一些字符。我一般会尝试使 URL 看起来“不错”,但这很愚蠢吗?
但是,与我们的西方 ASCII 格式无关的中文、日文、阿拉伯字母怎么办?
我真的不喜欢用十六进制代码重写 URL 的想法,所以现在如果 url 包含太多“不可转换”字符,我只使用我的内部唯一 ID。
internet-explorer - 是否有 IIS 设置来消除请求的 URL 中多余的“/”字符?
一般问题:
我们的 IIS Web 服务器的 URL 格式如下:
我们也看到像这样的网址进来了:
我们想去掉那个额外的路径字符,因为当用户代理是 Internet Explorer 时,这会解析为 2 个不同的页面,因此,当内容应该从缓存中解析时,它会下载两次。
我不确定这是否是一个需要通过 url 重写模块之类的东西来解决的问题,或者是否有配置设置。
javascript - javascript window.open() 和 # 符号
我正在尝试通过 window.open() 调用链接到具有“#”字符的文件。该文件确实存在,并且可以使用普通的锚标记链接到就好了。
我尝试使用 '%23' 转义 '#' 字符,但是当 window.open(myurl) 被处理时,'%23' 变为 '%2523'。这告诉我我的 url 字符串正在被 window.open 调用转义,将 '%' 更改为 '%25'。
有没有办法解决这种额外的转义。
示例代码:
找不到大喊“file://MyUNCPath/PropertyRushRefi-Add%25231-ABCDEF.RTF”的 URL
.htaccess - 通用 htaccess 将 www 重定向到非 www
我想重定向www.example.com
到example.com
. 以下 htaccess 代码使这种情况发生:
但是,有没有办法在不硬编码域名的情况下以通用方式做到这一点?
cookies - 除了 URL 重写之外,还有哪些选项可用于在不使用 cookie 的情况下维护会话?
我在 Stack Overflow 和网络上的其他地方看到了各种 URL 重写选项,但我很想知道是否还有其他选项。
asp.net - 如何确定 asp.net url 是否已“重写”?
我正在使用http://urlrewriter.net/在我的网站上重写 url。例如,我正在重写:
到
我正在尝试做的(出于 SEO 目的)动态添加元标记:
只到没有被重写的页面。这是因为我希望两个 URL 都可以工作,但只有重写的 URL 才能被搜索引擎索引。
如何确定请求了哪个版本的页面?
编辑
下面的答案建议使用 301 重定向而不是使用元标记。也许我会这样做,但我仍然想知道潜在问题的答案......我如何知道页面是否已被重写?
apache - Apache modrewrite .htaccess
我希望能够从以下位置重写 URL:
使用.htaccess
和 mod_rewrite。
有人知道怎么做吗?
我努力了:
但是,当您使用“漂亮的 url”(例如http://example.com/location/90210)时,它不会将 GET 位置变量传递给 /location/index.html 页面。
我知道这个 b/c 当我在屏幕上回显时(使用 javascript)位置 GET 变量在使用长 url 时已设置,但当使用漂亮(短)url 时,位置 GET 变量未定义。
java - 重写 HttpServletRequest 中的 getContextPath(用于 URL 重写)
我有一个网络应用程序,我想扩展它以支持具有新 URL 的多种语言。例如,www.example.com/home.do 保持英语,但 www.example.com/es/home.do 是西班牙语。我的第一个想法是创建一个过滤器,它将 /es/home.do 之类的传入 url 重写为 /home.do (并在请求中设置区域设置);这很好用。Filter 使用 HttpServletRequestWrapper 包装 ServletRequest,该 HttpServletRequestWrapper 覆盖 getContextPath() 以返回语言:
我的过滤器转发到相应的请求,如下所示:
我的问题是下一个 servlet 没有正确转发。下一个 servlet(通常是 Struts ActionServlet)转发到 JSP(通常使用 Struts Tiles);当我到达 JSP 时,HttpServletRequest 已经被包装了好几次,并且有问题的对象报告上下文为空(根上下文,这是实际部署应用程序的位置)。
我希望重写上下文,以便我所有已经存在的上下文感知代码可以自动将语言插入到编写的 URL 中。这可能吗?
编辑:我通过使用包装的 HttpServletResponse 而不是包装的 HttpServletRequest 解决了我的问题;我在 response.encodeURL() 方法中重写了 URL。