Articles of mod rewrite

反向代理(mod_rewrite)和Rails(绝对path)

例如,我有前端导轨应用程序,该应用程序可以根据URL来反向代理许多后端导轨应用程序 http://www.my_host.com/app_one反向代理到http://www.remote_host_running_app_one.com 这样像http://www.my_host.com/app_one/users这样的URL将显示http://www.my_host.com/app_one/users的内容 我有一个庞大而且不断扩大的后端数量,所以他们不能在数据库以外的任何地方明确列出。 这对使用prg:/ rewrite映射反向代理的mod_rewrite没有任何问题。 问题是,由rails助手返回的url具有/controller/actionforms,使得它们绝对是根。 这是由mod_rewrite提供的页面的问题,因为代理页面上的链接对域显示为绝对的。 即: http://www.my_host.com/app_one/controller/action有链接,最终看起来像/controller/action/当他们需要看起来像/app_one/controller/action mod_proxy_html似乎是正确的想法,但它似乎并不像我所需要的那样dynamic,因为规则需要被硬编码到configuration文件中。 有没有办法解决这个服务器端,以便链接将被正确路由?

哪些工具或技术可用于pipe理Apache的大量重写规则?

[注意:我在Stack Overflow上提出这个问题,有人build议我来这里。 我在这里search,发现这是接近我的问题,但不完全。 在我们的Apacheconfiguration中,我们目前有超过450个重写规则,跨4个不同的文件。 正如你所想象的,它们对于我们网站的运作方式至关重要。 我们当然要检查我们所添加的所有规则,把它们放在git中,并确保它们保持正确的顺序,以便不会踩到彼此的脚趾,但随着产品的全时开发,这个数字可能只会增加。 你用什么工具和/或技术来维护这种重要的(和潜在危险的)configuration? 你有什么保障措施来确保devise不当的重写规则不会意外地把大部分的网站带走? [以前的服务器故障线程提到RewriteMap,这似乎是一个有趣的工具,但不太适合解决我们的特定问题。]

为什么'索引'不符合这个重写规则?

这里是我所有的重写规则:( 没有别人 – 这是所有的人) RewriteEngine On RewriteRule ^$ index.php?action=index RewriteRule ^([\w]+)$ index.php?action=$1 当我访问: mysite.com/test PHP脚本index.php的确被调用, $_GET['action']设置为按照预期进行test 。 但是,当我访问: mysite.com/index PHP脚本报告$_GET是空的。 为什么这只发生在index ?

切诺基港口从.htaccess重写URL

我试图将我的htaccess重写规则移植到切诺基。 我已经试过了 这适用于我,但我似乎无法得到我使用的规则工作。 Apache规则: RewriteRule ^dealinfo/(.*)/(.*) redirect.php?url=dealinfo/$1/$2 当他们点击domain.com/dealinfo/1234/random-title到redirect.php服务器端时,它需要做的是redirect用户。 为此,我需要一个内部redirect。 每当我尝试添加这个redirect或一些变化,我得到一个500服务器错误,或者它只是不工作(404)。

使用mod_rewrite得到了一些文件在Apache日志中不存在的消息

我的mod_rewrite规则工作正常,但有时类似的错误出现在我的错误日志中: File does not exist: /var/www/examplesite/exampleurl 当然,请求的目录不存在,页面正常服务,但我的错误日志越来越多。 什么会导致这些错误?

国防部重写查询string的问题

我的国防部重写规则神秘地切断了我查询string的时间。 例如,这是请求url: http://mysite/tag/2/Search+For+Articles… 这是我想要的查询string: tag=2&clear=Search+For+Articles… 但是这是我得到的 tag=2&clear=Search+For+Articles 这是我的mod_rewriteconfiguration Options -Indexes Options +FollowSymLinks RewriteEngine On RewriteRule ^tag/([^/]*)/([^/]*)(/?)$ f.php?tag=$1&clear=$2 [L,QSA] 我该如何解决这个问题?

我怎样才能301从一个url格式的所有stream量redirect到另一个?

由于我们已经将模板名称从template-a更改为template-b,并且需要将所有链接301更改为新的template-b URL,所以我一直在努力处理基本的重写规则。 例: /信任的安装程序/模板-A /东西,这里/和可能,在这里 应该301redirect到: /信任的安装程序/模板-B /东西,这里/和可能,在这里 我知道我需要一个模式匹配和R = 301,但到目前为止,我还没有得到这个工作是正确的。 任何快速的build议将非常乐意接受。

mod_rewrite页面使用HTTPauthentication

我正在尝试使用modrewrite将http:// myserver / cam1代理到http:// admin:[email protected]/cgi/mjpg/mjpg.cgi内部受http-auth保护的服务器 不pipe我尝试什么,但是请求http:// myserver / cam1总是提示我input用户名和密码。 我尝试过所有这些都无济于事。 RewriteRule ^/cam1 http://admin:[email protected]/cgi/mjpg/mjpg.cgi [P,L] RewriteRule ^/cam1 http://192.168.99.130/cgi/mjpg/mjpg.cgi [E=Authorization:Basic\ YWRtaW46YWRtaW4=,P,L] RewriteRule ^/cam1 http://192.168.99.130/cgi/mjpg/mjpg.cgi [E=HTTP_USERID:admin,E=HTTP_PASSWORD:admin,P,L]` 任何人有任何其他的想法?

Apache mod_rewrite子域和URL参数

我正在尝试编写一个Apache mod_rewrite,它可以从子域中获取信息,并在域之后将其作为一对variables传递给PHP脚本。 这是我迄今为止,与此我可以得到子域,或URL参数。 RewriteEngine On RewriteCond %{HTTP_HOST} ^([^./]+)\.domain\.com/([a-zA-Z0-9/-]+)$ RewriteCond %1 !=www RewriteRule ^ redirect.php?subdomain=%1&args=$2 RewriteRule ^/?([a-zA-Z0-9/-]+)$ redirect.php?args=$1 [L] mod_rewrite已启用,我们正在使用通配符Alogging将所有stream量指向此服务器* .domain.com 此外,如果在其他地方发布,我也表示歉意,我一直在试图解决这个问题,并在上​​个月,并没有find答案,或find答案张贴在任何地方。

mod_rewrite:内部重写为(假)干净的URL不可能。

这更是一个为什么问题。 我正在使用CMS,通过开箱即用的mod_rewrite处理干净的URL。 网站有一个部分/accessories ,现在必须重新命名为/store 。 在懒惰模式下,我只是想使用mod_rewrite进行内部重写,因此,在访问example.com/store/ ,我希望透明地从example.com/accessories内容,而不需要任何外部redirect。 到目前为止,我已经试过这个: RewriteEngine On # Internally rewrite /store to /accessories RewriteRule ^store /accessories [L] #also tried with other flags like PT, N, C # All below rules are provided by CMS RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(.+) – [PT,L] RewriteCond %{REQUEST_URI} !=/favicon.ico RewriteRule ^(.*) index.php 但没有任何工作 […]