Articles of 重写

Apache – 我应该使用“ProxyPass …”还是“RewriteRule … ”来代理请求?

Apache的文档说,你可以使用mod_rewrite做类似的事情mod_proxy,通过使用[P]选项。 我应该用哪个? 还是没有区别? 现在我使用的是从mod_proxy中的ProxyPass ,因为我也想包含ProxyPassReverse ,而且文档暗示你应该有这个,并且从mod_rewrite文档中不清楚ProxyPassReverse (或者等价的function)是否包含在RewriteRule .. [P] 你用哪个?

如何在htaccess中redirect很多redirect?

Q1。 是否有可能进一步优化 / 压缩以下规则,从而使整个redirect更快 ,更容易维护? 有大约二十这些领域! 你得到我的问题的照片! 非常感谢任何和所有的线索+1 RewriteCond %{REQUEST_URI} ^/$ RewriteCond %{HTTP_HOST} ^website.com$ RewriteRule ^$ en/home [R=301] RewriteCond %{HTTP_HOST} ^website.de$ RewriteRule ^$ de/home [R=301] RewriteCond %{HTTP_HOST} ^website.fr$ RewriteRule ^$ fr/home [R=301] 等等等等 Q2。 我应该把这些规则放在一起,比如把[C]放在最后? Q3。 这是从search引擎的angular度redirect的正确方式?

nginx用查询string重写URL

我一直在使用Googlesearch,无法找出这一个。 这看起来很简单,我相信这是,但我不是服务器专家。 我的url是: http://www.example.com/blog/?tag=Word1+Word2 : http://www.example.com/blog/?tag=Word1+Word2 tag=Word1+ http://www.example.com/blog/?tag=Word1+Word2 一些标签是一个单词(例如:自行车),有些更长(例如:双轮自行车)。 我需要这个url输出为: example.com/blog/tag/word1-word2/ 我怎样才能获得重写呢?

IIS7和URLRewrite与WordPress 3.1.1redirect失败

我在迁移到wordpress 3.1.1多站点和url重写规则时遇到了一个有趣的问题。 index.php路由,以及ms-files.php?file =规则在整个板上都失败了。 当你通过index.php发送永久链接时,ROOT站点具有可以工作的function。 (编辑:这在networking站点也很普遍,从我所看到的规则7是这里失败的罪魁祸首。) 媒体(规则2)的规则也失败了。 生成的链接正在拉回一个“哎呀不能find”404风格的错误。 一切看起来都正确的规则部分,如下所示: <rule name="WordPress Rule 1" stopProcessing="true"> <match url="^index\.php$" ignoreCase="false" /> <action type="None" /> </rule> <rule name="WordPress Rule 2" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" /> <action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" /> </rule> <rule name="WordPress Rule 3" stopProcessing="true"> <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" /> </rule> <rule name="WordPress Rule […]

如何设置URL重写到Heroku实例?

我更像是一个工程师,而不是一个开发人员,所以请原谅,如果这是非常基本的。 我的情况:我在example.edunetworking上有一个服务器,所以我不控制example.edu的主DNS接口。 所以我不相信我可以使用DNSSimple或者Zerigo。 但是我在服务器上有root,它有以下两个主机名: foo.example.edu bar.example.edu 我的目标是设置Apache执行以下操作。 首先,当一个访客inputfoo.example.edu时,他们应该看到一个静态的网页: http://foo.example.edu – >提供一个静态的网页 然后,如果访问者inputbar.example.edu,则应该执行URL重写,他们应该查看Heroku上托pipe的站点的HTTPS版本,如下所示: http://bar.example.edu – > https://bar-example-edu.herokuapp.com https://bar.example.edu – > https://bar-example-edu.herokuapp.com https://bar.example.edu/some/url – > https://bar-example-edu.herokuapp.com/some/url 特别是,这应该是一个URL重写,所以在浏览器的地址栏中,访问者将看到https://bar.example.edu/some/url而不是https://bar-example-edu.herokuapp.com/some/url 。 我如何去做这件事? 我想我应该使用Apache mod_rewrite,并编辑httpd.conf。 我刚开始看教程,但主要棘手的部分是,我没有完全控制域,并要确保我设置正确。

Nginx重写:位置指令中的PHP文件没有被提供

我正在尝试将一个子目录redirect到一个PHP文件。 它不是提供文件,而是下载它,这意味着它不会读取它作为一个PHP文件。 更确切的说,它不会进入fastcgi location ~ \.php$指令。 一些有趣的事实: 一切工作完美的admin团队,但不是login块。 当我将location ~ \.php$指令移动到login之上时,我将^~ /login改成~ /login ,这对于重写规则rewrite ^/login/(.+\.php)$ /$1 last; /(。+ rewrite ^/login/(.+\.php)$ /$1 last; 。 我没有阅读关于该主题的Wiki Nginx文档,所以我知道nginx读取位置指令的优先级,但是并不告诉我如何处理这种情况! 我也读过 类似的问题https://stackoverflow.com/questions/10126117/need-help-understanding-configuring-an-nginx-location-directive (未答复) https://stackoverflow.com/questions/11961323/howto-setup-window-nginx-virtual-directory-with-php-support ,我试图实现没有成功 https://stackoverflow.com/questions/1011101/nginx-location-directive-doesnt-seem-to-be-working-am-i-missing-something涵盖了一个真正的(不是虚拟的)子文件夹的情况。 这是configuration: server { listen 80; server_name tyba-one.com *.tyba-one.com; root /var/www/tyba/public_html; rewrite_log on; error_page 404 /404.php; client_max_body_size 4M; if ($host ~* ^www\.(.*)){ set $host_without_www $1; […]

在IIS 7中重写URL

我有个问题。 我正在使用IIS 7 URL重写。 它工作正常,但现在我想这个: http://www.example.com/http://www.domain.com 成为: http://www.example.com/www.domain.com 我不知道如何做到这一点。 你可以帮我吗? 提前致谢! Martho

如何用haproxy重写一个redirect的url?

我试图代理所有请求到/静态/ PDF到一个具有相同的文件名,但没有/静态/ PDF的前缀的CDN。 我可以用这样的nginx轻松做到这一点: location ^~ /static/pdfs/ { rewrite /static/pdfs/(.*) http://mycdn.com/$1; } haproxy可以做同样的事吗?

与Nginx的Apache风格的多视图

我有兴趣从Apache / mod_php切换到Nginx的一些非CMS网站我正在运行。 问题的网站是完全静态的HTML文件或简单的PHP,但他们有一个共同点是,我目前正在使用Apache的mod_negotiation服务他们没有文件扩展名。 我不关心实际的内容谈判; 我正在使用这个,所以我不必在我的url中使用文件扩展名。 例如, /info/contact /info/contact.php的文件通过just /info/contact的URL访问 实际的文件是在该位置的.php文件,但我不使用URL中的扩展名。 这给了我稍微更短,更干净的url,也没有向用户公开实质上没有意义的实现细节。 在Apache中,所有这些都需要启用mod_negotiation并将+ MultiView添加到该站点的选项中。 在Nginx中我收集了一些重要的内容,但是对Nginx来说是新的,我不确定如何去做。 这些网站目前工作良好,从Nginx到Apache的代理,但我想尝试只用Nginx / fastcgi运行它们。 只要我使用扩展,它们就可以很好地工作,所以fastcgi方面的工作非常棒。 我现在关心的是删除这些扩展。 请记住,在子目录中,文件名并不总是在URL中。 那是, /foo/bar应该查找/foo/bar.php或/foo/bar/index.php /foo/应该查找/foo/index.php 有没有简单的方法来实现这个与Nginx或我应该坚持与代理到Apache?

用其他服务器/端口的内容重写IIS提供的子域

我们的主要Web服务器使用IIS 6,它显然捕获所有的端口80stream量,我们有另一个应用程序服务于非标准端口(8443),使用Apache托pipe。 例如: http://www.mydomain.com – > IIS6 http://subdomain.mydomain.com:8443 – > Apache App http://subdomain.mydomain.com – > IIS6 我希望能够在不使用端口8443的情况下访问Apache应用程序。也就是说,IIS应该在不同的端口上重写/代理来自Apache应用程序的内容。 注意:我不想redirect用户。 http://subdomain.mydomain.com – > IIS < – > http://subdomain.mydomain.com:8443 – > Apache App 这可能吗? 我应该使用什么工具?