问题标签 [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 投票
2 回答
223 浏览

.htaccess - 所有 Web 文档的 mod_rewrite 规则

我需要重写规则和条件来为我的服务器上请求的每个 Web 文档调用一个中央 PHP 脚本。补充一下,我不希望在对 CSS、JS、PNG、GIF、JPG 和其他媒体等进行请求时调用 PHP 脚本。我只希望在 HTM、HTML 和 PHP 文档中调用该脚本根目录和任何目录或子目录。

我遇到的主要绊脚石是我无法为任何假定的目录索引调用脚本。这是我得到的:

  • http://sampleDomain.com/test/index.html(遵循 RewriteRule 并调用 myScript.php)
  • sampleDomain.com/test/test.html(遵循 RewriteRule 并调用 myScript.php)
  • sampleDomain.com/test/(不遵循 RewriteRule - 它显示目录列表)
  • sampleDomain.com/test(不遵循 RewriteRule - 它显示目录列表)

这是我的指令:

  • 重写引擎开启
  • RewriteCond %{REQUEST_FILENAME} !-f [NC,OR]
  • RewriteCond %{REQUEST_FILENAME} !-d [NC]
  • 重写规则。/phpDir/myScript.php [L]

RewriteRule 和 RewriteCond 看起来像什么让每个/任何 Web 文档都可以唤起 myScript.php?

谢谢。

0 投票
3 回答
20353 浏览

deployment - Nginx 位置、别名、重写、root

我正在通过 proxypass 服务 /foo/bar/ 并希望继续这样做。但是,我想从 /var/www/mystatic/baz.swf 等静态地服务 /foo/bar/baz.swf 等等。

我希望我能做类似的事情

/foo/bar/ 将转到应用程序服务器,而 /foo/bar/(.*) 将静态提供。

文档说我不能这样做,需要结合使用 root 和重写:http ://wiki.nginx.org/NginxHttpCoreModule

更复杂的是,我想继续使用古老的、不受支持的 0.5.33。任何帮助将不胜感激。

编辑:继续前进,有人建议使用 root 而不是别名。但是,我的版本似乎不能在 location 指令上使用任何正则表达式?在这里,/foo/bar/baz.swf 由 proxy_pass 提供服务!我的文件位于 /var/www/foo/bar/baz.swf。

0 投票
2 回答
9536 浏览

mod-rewrite - mod_rewrite“重定向太多”问题

试,

在 apache 2.2 服务器上,让这个重写工作隐藏路径的“index.php/test”部分。

我尝试过的所有内容要么在地址栏中循环 url 部分(index.php/test),要么给出“重定向太多”错误。

我怀疑等式的“测试”部分在两边都把它扔掉了,但我不知道如何让它工作。

我只想: dev.example.edu/test/index.php/test* 重写为: dev.example.edu/test/*

谢谢

0 投票
2 回答
625 浏览

apache - Apache mod_rewrite - 从子域重写到主域

我想将 url abc.xyz.com/123 重定向到 xyz.com。所以要访问的文件是xyz.com的index.php。该 index.php 应该同时具有 abc 和 123(因此 123 将是 $_SERVER['PHP_SELF'],而 abc 将来自 $_SERVER['HTTP_HOST'])以启用适当的处理。

abc.xyz.com 已经转到 xyz.com(虽然由我的服务提供商配置),并且 abc 可以从 $_SERVER['HTTP_HOST'] 中提取出来。但是,abc.xyz.com/123 似乎在 xyz.com 的根目录中寻找名为 123 的文件夹,并且在找不到任何内容时显示 404 错误。

有人可以给我放入 .htaccess 的行以使 abc.xyz.com/123 能够调用 xyz.com 的 index.php(通过 $_SERVER['PHP_SELF'] 可以使用 123?我不能似乎让它工作。

非常感谢您的宝贵时间!

0 投票
1 回答
2310 浏览

php - htaccess html > php 重定向 + Wordpress 重写永久链接结构

我只使用 html 启动了一个站点,将其切换到 php 以使我的生活更轻松,并在 .htaccess 中使用了以下代码以确保所有用户(可能已添加书签)仍能看到正确的页面:

现在,我正在新闻部分工作一个 wordpress 博客(在 /news 目录内),当我将下面的重写代码拍到我的 .htaccess 中时,我的 wordpress 目录之外的所有文件默认为 wordpresses 404 ,他们仍然在栏中有正确的地址,但没有信息。

任何人都可以帮助 .htaccess 的正确结构 - 我倾向于将片段用于特定任务而不是编写 htaccess 的东西。

谢谢

0 投票
2 回答
1061 浏览

rewrite - 如何在乘客 suburi 部署中配置维护页面

我正在尝试为 Rails 应用程序的 Phusion Passenger 上的 suburi 部署设置维护页面。所有文档都显示了 DocumentRoot ReWrite 规则,这些规则不会出现(不认为应该)在 suburis 上重写。我尝试修改 ReWrite 规则以指向 suburi,但我似乎无法让它工作。有没有人能够得到一个有效的设置?

0 投票
1 回答
61 浏览

apache - Apache 重写 url 需要帮助

大家好,我需要 apache 模式重写的帮助,因为我是新手。其实我不知道如何做到这一点。

这是我的问题

我有一些网址,我想用 apache 编辑它们

1- mywebsite/category.php ---> 我希望该 URL 保持不变,就像它是 mywebsite/category.php?sid=categoryname ---> mywebsite/category/categoryname.html

2- mywebsite/news.php --> 没有修改 mywebsite/news.php?view=1(2,3,4,5....etc 数据库中的 id) ---> mywebsite/news/topic 标题。 html topic header 是消息的标题,将通过 id 从数据库中调用

好吧,谢谢大家的帮助,因为我真的不知道该怎么做。我所能做的就是创建一个htaccess文件^^。

0 投票
2 回答
2147 浏览

regex - 重写规则 (mod_rewrite)

重写规则是什么意思?

抱歉,即使在阅读了 mod_rewrite 语法解释之后,我也没有明白... :-/ 有人可以解释一下该规则的作用。

非常感谢。

0 投票
1 回答
1323 浏览

regex - Apache RewriteCond 到 Lighttpd

我想将一些在 apache 上运行的站点迁移到 Lighttpd。

谁能帮我将此重写规则转换为 Lighttpd 的等效规则:

我正在阅读 Lighttpd 重写说明(http://redmine.lighttpd.net/wiki/1/Docs:ModRewrite),但我不明白如何转换此特定规则。

非常感谢

0 投票
1 回答
402 浏览

.htaccess - 即使存在相同 URL 的文件也执行重写(不会出现错误 500:无限递归)

即使存在与请求的 URL 位于同一位置的文件,我也试图在 .htaccess 文件中进行重写。

即,即使 /about/index.html 有文件,我也希望重写 /about/index.html 。

目前我有:

问题是,如果我要求

http://thehost.example.com/about/index.html

并且 /about/index.html 存在一个文件(这是我想要的,即如果文件确实存在,则应该进行重写,但如果不存在也可以发生)

然后我得到错误 500:无限递归。

(添加一个 RewriteCond 来免除被重写的存根文件本身没有区别。)

htaccess rewrite 导致 500 错误而不是 404表明缺少 -f RewriteCond 会阻止递归,但这会导致我不想发生的行为。

有没有办法让重写发生,即忽略文件存在的事实,即使存在相同 URL 的文件,也只是重写?