我想写一个简单的重写规则,将会改变: https://example.com/index.php?shortened_url=value 至 https://example.com/value 为了达到这个目的,我使用了下面的重写规则: RewriteEngine On RewriteRule ^([^/]*)$ /index.php?shortened_url=$1 [L] 但是我收到错误: 由于可能的configuration错误,请求超出了10个内部redirect的限制。 显然这表明有一个循环问题的地方,但据我所知,我的规则是非常简单的,不应该导致任何循环?
我需要在同一台机器上为大量网站提供服务。 我需要能够dynamic地添加和删除网站。 在内部,Web服务器需要认为请求是从虚拟主机到达的。 是否可以在前面使用nginx来处理以下格式的请求:example.com/vhost1/some/path并将其重写为:vhost1.example.com/some/path 我可以做到这一点,而无需为vhost1.example.comconfigurationDNS? 我是否需要将vhost1.example.com添加到机器上的主机名称? 谢谢
我想redirect所有电子邮件 *@domain.fr to [email protected] 你知道我可以在Debian上configuration我的exim4服务器吗? (我的eximconfiguration接缝被拆分成不同的文件) 谢谢。
在我的旧主机上,当添加一个域时,我可以select是否我想要http://www.domain http://domain或两者(例如,如果我selectwww.domain,它会redirecthttp://domai n到http://www.com 。) 这是可能的,而不需要编辑.htaccess? 像在vosts.conf? 另外,如果通过.htaccess来做,最好的方法是什么? RewriteCond %{HTTP_HOST} . RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] RewriteRule (.*) http://www.example.com/$1 [R=301,L] ? 我读过,没有第一行,http / 1.0浏览器将失败(因为他们不包括头中的主机)
我有一个服务器,其中一些文件的名称中有一个实际的 %20 (它们是由一个自动化的工具来处理空间,我不能做任何事情)。 这不是空格:它是“%”,后跟“2”,后面是“0”。 在这个服务器上,有一个Apache Web服务器,并且有一些网页链接到这些文件,使用他们的名字在像http://servername/file%20with%20a%20name%20like%20this.html ; 那些页面也是由同一个工具生成的,所以我(再次!)对此无能为力。 对所有文件,页面和URL进行全面的search和replace是不成问题的。 问题是:当Apache被上面的URL调用时,它(正确地)将“%20”翻译成空格 ,然后当然找不到这些文件,因为它们没有实际的空格他们的名字。 我该如何解决这个问题? 我发现比使用像http://servername/file%2520name.html这样的URL更好,因为Apache会将“%25”转换为“%”符号,从而build立正确的文件名。 我尝试使用Apache重写规则,我可以用这样的语法成功replace空间: RewriteRule (.*)\ (.*) $1-$2 问题是:当我尝试用“%2520”序列replace它们时,这不会发生。 如果我使用 RewriteRule (.*)\ (.*) $1%2520$2 那么得到的URL是http://servername/file520name.html ; 我也尝试了“%25”,但是我只得到了“5”。 它看起来像最初的“%2”有点丢弃。 问题: 我如何build立这样的正则expression式来replace“%2520”的空格? 这是我能处理这个问题的唯一方法吗(除了像我所说的那样,不能完全search和replace)或者你有什么更好的想法吗? 编辑: 转义是关键,它使用这个规则: RewriteRule (.*)\ (.*) $1\%2520$2 但只有在初始url中有一个 “%20”的情况下才有效; 如果有多个,我会得到一个“内部服务器错误”。 看起来我差不多有…请帮忙:-) 编辑2: 我能够使用以下规则使它工作两个空格: RewriteRule (.*)\ (.*)\ (.*) $1\%2520$2\%2520$3 这足够满足我的需求,因为工具生成的URL最多只能包含两个“%20”; 但出于好奇:有没有办法使这个工作与任何数量的空间? 它与第一条规则一起使用,如果用正常字符replace任意数量的空格,则只有在涉及特殊字符时才会发生此问题。
我敢肯定,我错过了一个技巧,但我不能解决如何使用Apache RewriteRule从URL中的文件名删除尾部的斜线。 我的url是这样的: www.mysite.com/dynamic_folder_name/index.php/ 我需要的URL成为 www.mysite.com/dynamic_folder_name/index.php 任何帮助,将不胜感激。 干杯
我的理想设置是采取当前的客户端站点,上传一个.htaccess与里面的正则expression式,将匹配的URI,如果它find一个特定的文件扩展名,它会使用相同的path,但有一个更改的域。 即。 正常path: http://www.domain.com/something/images/someimage.jpeg http://www.domain.com/assets/js/jquery.js .htaccess翻译会把上面的内容变成: http://mycdn.other.com/something/images/someimage.jpeg http://mycdn.other.com/assets/js/jquery.js 我连续search几个小时,没有运气。 再次,这是为了实际利用亚马逊的CloudFront。 S3已经挂载到网站进行备份和使用s3fs存储文件,但是这并不能解决问题,因为它直接使用S3而不是使用CloudFront。
重写www到非www是行不通的。 domain.comurl的作品,但www.domain.com给出了以下错误"Problem loading page – Mozilla Firefox – Server not found". 我已经清除了FF Cache等。IE说,Internet Explorer无法显示网页。 我尝试了以下configuration和其他教程中的所有其他重写示例,包括nginx文档。 没有重新启动或重新加载nginx,(没有任何机会),我重新启动系统。 我的设置是Debian Lenny,nginx依赖和apt-get install nginx的基本安装; 而已。 很简单的testing服务器。 我在site-available中创build了一个domain.com文件,并为启用了网站的符号链接。 这是我的domain.comconfiguration文件(根据最佳实践完成,并遵循nginx的陷阱文档部分): server { server_name www.domain.com; rewrite ^ $scheme://domain.com$request_uri permanent; } server { server_name domain.com; location / { root /srv/www/sites/domain.com; } } 我在这里错过了什么? 我也试过用nginx-0.8.54; 编制了最新的稳定版本。 我尝试了两个不同的物理服务器。 尝试在VMWare VM上; 并尝试从远程计算机访问。 根据大家的教程重写似乎工作,但对我来说不。 我把Apache服务器放在一起没有问题,但是我一直把头撞在nginx的桌子上。 另外,我做了一个本地testing,并编辑了C:\ WINDOWS […]
我需要一个mod_rewrite规则,将所有请求发送到index.php,除非请求是针对/ media /文件夹中的任何内容。 我有一个lighttpd类似的规则,但我不知道正则expression式/ mod_rewrite更改为Apache。 url.rewrite-once = ( "/(media)/(.*)" => "/$1/$2", "^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3", ) 谢谢
这是为IIS6或IIS7。 我想将一个域映射到一个子目录。 例如: http://www.example.com/dir1/test.aspx 我想删除“ http://www.example.com ”部分,并redirect到一个相对的url,如“proj1 / example / dir1 / test.aspx”。 如果不行的话,换成“ http://www.example2.com/proj1/example/dir1/test.aspx ”,用户的url显示不能改变。 我知道这已经做了一百万次,但我从来没有在这方面的工作。