Articles of mod rewrite

mod_rewrite重写破坏的URL和错误的查询string

我遇到了mod_rewrite问题。 有一个外部链接到我的网站,看起来像这样: http://www.example.com/foo/page?myparam=AB/some-garbage.asp?bar=123 我试图创build一个mod_rewrite规则来解决它(删除最后的斜线和它后面的一切)。 我已经尝试了各种各样的东西: RewriteCond %{QUERY_STRING} myparam=AB/ [NC] RewriteRule (myparam=AB.*) myparam=AB [L,R] 我在规则列表的顶部有这个规则,但是我得到一个“禁止访问这个服务器上的/ foo /页”的错误。 如果我删除了最后一个“?” 以及之后的所有内容,那么这个URL的处理程序的参数是myparam,其值为“AB / some-garbage.asp”。 我也尝试了REQUEST_URI和THE_REQUEST,但似乎没有重写这个URL。 请帮助?

Apache RewriteRule将图像,css和js文件视为正常

我需要build立一个Apache的RewriteRule为了有这样的行为: example.com/foo => index.php?module=foo&action=&args= example.com/foo/bar => index.php?module=foo&action=bar&args= example.com/foo/bar/baz => index.php?module=foo&action=bar&args=baz example.com/foo/bar/baz/foobaz => index.php?module=foo&action=bar&args=baz/foobaz 我写了这个正则expression式: RewriteRule ^(.[^/]*)(\/)?(.[^/]+)?(\/)?(.+)?$ index.php?module=$1&action=$3&args=$5 [L,QSA] 它工作的很好,我只需要告诉Apache忽略所有以特定扩展名(例如.jpg,.png,.css,.js,.gif等)结尾的url。 这些应该被视为正常,例如example.com/css/style.css应显示CSS文件(是否存在)。 任何想法?

Apache 310使用通配符URLredirect

我试图redirect这… http://www.wfmc.org/administrator/components/com_civicrm/civicrm/extern/url.php?u=878&qid=3686395 – 其中“&qid = 3686395”因链接而异链接。 我怎么能redirect看起来像这样的一切: http: //www.wfmc.org/administrator/components/com_civicrm/civicrm/extern/url.php?u = 878'它将在878之后处理所有事情网站。

如何重写url(\ img?src = foo.jpg)中的查询string到cachableurl(\ img-foo.jpg)?

现在部分解决的问题。 一个能够stream利地讲Apache的天才可以照亮这个事情。 GIVEN:大多数代理服务器,不要使用“?”来caching资源 即使在响应中存在Cache-control:public头部,它们的URL也是如此。 要为这些资源启用代理caching,我必须从对静态资源的引用中删除查询string,而不是将参数编码到文件名称中。 目前有 <img src="/imgcpu?src=folder1/photo_citty.jpg&w=3500&h=10&c=p&q=90" /> <img src="/imgcpu?src=folder2/photo_doggy.jpg&w=100&h=200&c=p" /> <img src="/imgcpu?src=folder3/photo_birds.jpg&w=200&h=500&f=bw" /> <img src="/imgcpu?src=folder3/photo_frogs.jpg&w=200&f=bw" /> 想 <img src="/IMG-folder1/photo_citty.jpg_w3500_h10_cp_q90" /> <img src="/IMG-folder2/photo_doggy.jpg_w100_h200_cp" /> <img src="/IMG-folder3/photo_birds.jpg_w200_h500_cs_fbw" /> <img src="/IMG-folder3/photo_frogs.jpg_w200_fbw" /> 图像将驻留在根目录下的1个文件夹中(永远不会更深) img.php?src =或者img?src =将永远被永远命名 我知道“img?src =”是一个不好的部分,已经处理了: # Rewrite imgcpu?src= thumbnail maker to nice static urls RewriteRule ^IMG-(.*) /imgcpu?src=$1 [L] 但其余的我坚持。 任何和所有的线索是非常受欢迎的。 谢谢。 进展 IMG-folder1/photo_citty.jpg&w=3500&h=10&c=p&q=90 […]

使用Mod_rewrite重写所有的子域名请求,我做错了什么?

我试图这样做,使所有使用子域名的请求被重写,这样他们被发送到服务器作为“常规”的请求没有子域名。 我已经创build了下面的mod_rewrite代码,但似乎并没有工作。 任何意见是极大的赞赏。 Options +FollowSymlinks RewriteEngine on RewriteRule (.*?).mydomain.com/(.*) http://mydomain.com/$2 我希望一切仍然出现在用户的地址栏窗口中: http://subdomain.mydomain.com/$2 (其中$ 2是他们最初在地址栏中input的path)

url重写,使生成的thumnailscaching像静态,一个语法问题

这是屁股问题的痛苦! 鉴于:大多数代理,不要caching资源与“?” 即使在响应中存在Cache-control:public头部,它们的URL也是如此。 为了启用这些资源的代理caching,我已经从引用到静态资源中删除查询string,在非常丑陋的Apache正则expression式代码!* 第一部分完成与Dennis Williamson & Mark Henderson马克亨德森两个天才的线索 第二部分在这里,这个问题涵盖了第二部分:使代码优雅和不太干净 以前有过 <img src="/imgcpu?src=folder1/some_funny_kitty.jpg&w=3500&h=10&c=p&q=90" /> <img src="/imgcpu?src=folder3/camels_ride_on_birds.jpg&w=200&h=500&f=bw&q=10" /> <img src="/imgcpu?src=folder3/clay_loves_frogs.jpg&h=200" /> 工作中 <img src="/IMG-folder1/some_funny_kitty_w3500_h10_cp_q90.jpg" /> <img src="/IMG-folder3/camels_ride_on_birds_w200_h500_fbw_q10.jpg" /> <img src="/IMG-folder3/clay_loves_frogs_h200.jpg" /> 在这个不雅的代码的成本 # Rewrite imgcpu?src= thumbnail maker to nice static urls RewriteCond %{REQUEST_URI} ^IMG.*$ RewriteRule ^IMG-(.+)_w(.+)_h(.+)_c(.+)_f(.+)_q(.+).jpg$ imgcpu\?src=$1\.jpg&w=$2&h=$3&c=$4&f=$5&q=$6 [L] RewriteRule ^IMG-(.+)_w(.+)_h(.+)_c(.+)_f(.+).jpg$ imgcpu\?src=$1\.jpg&w=$2&h=$3&c=$4&f=$5 [L] RewriteRule ^IMG-(.+)_w(.+)_h(.+)_c(.+)_q(.+).jpg$ imgcpu\?src=$1\.jpg&w=$2&h=$3&c=$4&q=$5 [L] […]

如何重写Apache 2中反向代理页面中引用的资源的根位置?

我们有一个位于http://foo.bar的应用程序服务器。 它需要通过http:// wibble / foo使用反向代理来访问。 这我已经pipe理,但是有在http:// foo.bar的东西从/ 例如: /images/blah.jpg 所以它试图得到http:// wibble / images / blah.jpg而不是 http:// wibble / foo / images / blah.jpg 任何想法如何让它插入/ foo前缀的任何引用/?

你如何从一个目录redirect到另一个目录并维护正确的basepath?

我需要将所有/ eulastream量redirect到/ tos RewriteRule ^/eula/$ /tos [R=301,NC] 但是这个规则似乎不起作用 – 主要是因为basepath被当作真正的另一个父目录来处理; 上面的规则是怎么回事? /my/docs/eula -> /tos 这是不对的,应该是这样做的 /my/docs/eula -> /my/docs/tos 如何为此编写规则,而不必指定父目录是什么?

mod_ReWrite删除一部分的URL

有人错误地链接到我的一些url,导致谷歌网站pipe理员工具中的404错误。 这是一个例子 链接url: http://www.example.com/foo-%E2%80%8Bbar.html : http://www.example.com/foo-%E2%80%8Bbar.html 正确的url: http://www.example.com/foor-bar.html : http://www.example.com/foor-bar.html 我想301将这种不正确链接的任何实例redirect到正确的URL。 我已经尝试了以下,但它产生404错误网站广泛。 Options +FollowSymLinks RewriteEngine on RewriteRule ^foo-(.*)bar\.html$ http://www.example.com/foo-bar\.html? [L,R=301] 任何人都可以让我知道我做错了什么?

Apacheredirect目录

所以,我试图将任何页面redirect到一个文件,但是避免redirect任何现有的文件或目录。 RewriteEngine On RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} -d RewriteRule ^(.+)$ $1 [L] RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f RewriteRule ^(.+)$ /index.php?page=$1 [QSA] 但是,任何目录仍然被redirect(现有的文件很好,可以find)。