Articles of mod rewrite

apache2将www附加到https url

我在AWS中使用bitnami有一个apache2 webserver。 在我的bitnami.conf文件中,我需要重写所有的URL https://www.example.com 我能够正确地redirect以下内容 mydomain.com http://example.com www.example.com 但是当url是https://example.com它不会redirect到https://www.example.com. 我的configuration是 <VirtualHost _default_:80> DocumentRoot "/opt/bitnami/apache2/htdocs" RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ – [E=protossl:s] RewriteCond %{HTTP_HOST} ^([az.]+)?example.com$ [NC] RewriteCond %{HTTP_HOST} !^www. [NC] RewriteRule .? http://www.%example.com%{REQUEST_URI} [R=301,L] RewriteRule /smecweb/(.*) /$1 [R=301] RewriteRule ^(/(.*))?$ https://www.%{SERVER_NAME}/$1 [R,L] 我尝试在<VirtualHost _default_:443>做类似的事情,但是恢复了它。 有人能指出我在这里做错了什么吗?

尝试在/ to / repo的反向代理中使用Apache 2.4 ReWriteRule

我有一个HTML服务器http://pp000c29784409.usask.ca/ ,我想使用ProxyPass,ProxyPassReverse和RewriteRule从Apache 2.4服务器反向代理。 这个想法是通过univers.mysite.org/repo(这是Apache服务器)显示来自http://pp000c29784409.mysite.org/的所有html内容。 为此,我已经在http.conf中设置了这个 <IfModule mod_proxy.c> RewriteEngine on RewriteRule ^/(images|javascripts|stylesheets)(.*) /repo/$1$2 SSLProxyEngine on ProxyVia On ProxyPass /repo http://pp000c29784409.mysite.org/ ProxyPassReverse /repo http://pp000c29784409.mysite.org/ </IfModule> 这工作除了在页面上的graphics IIS Windows服务器 </head> <body> <div id="container"> <a href="./reports"><img src="iis-85.png" alt="IIS" width="960" height="600" /></a> </div> </body> </html> 在上面的图像试图从pp000c29784409.mysite.org/iis-85.png 它应该是 pp000c29784409.mysite.org/repo/iis-85.png 这是我正在尝试使用重写,什么是正确的forms来做到这一点?

htaccess .zip url从/*.zip重写为/key/*.zip

目前我有一些zip文件存储在我的PHP / Apache Web服务器的http根。 目前我可以使用这个访问文件: http://example.com/filename.zip 但是,我想“保护”这个文件的访问权限,而且他们只能使用类似这样的方式进行访问: http://example.com/key/filename.zip 有人可以帮我创build一个重写规则来做到这一点? 关键是一个固定的string。 它将在.htaccess规则中进行硬编码。 当用户访问以下URL时: http://example.com/key/filename.zip 他应该能够下载zip文件。 当用户访问以下URL时: http://example.com/filename.zip 他不应该能够下载zip文件。 他应该收到一个http错误。 我的代码到目前为止: RewriteEngine on RewriteRule ^key/(\w+).zip $1.zip

Apache:根据html正文内容redirectURL

背景:我正在apache 2.4上主持一个moinmoin wiki。 我只希望只有经过身份validation的用户才能看到它,所以我已经相应地调整了ACL。 如果用户未login,则会显示网站标题和string“您不能查看此页面”。 在身体里。 然后,用户必须[手动]进入login页面并进行身份validation。 许多CMS和维基系统都有一个系统,如果用户没有通过身份validation,就会将用户redirect到login页面。 Moinmoin没有这个。 我一直在冲刷mod_rewrite和类似模块的文档,以redirect到另一个URL的方法。 例如,我已经find了基于URL内容和HTML标题数据redirect的方法,但是根据HTML主体内容不能redirect。 有没有一种方法来基于HTML正文中的stringredirect?

用htaccess从文件夹加载子域名

我有一个项目设置,我有多个子域名,用于不同的目的,如login.example.com , signup.example.com和blog.example.com 。 我只有configuration的域,但没有创build任何子域。 所有子域都应该从根文件夹中的相应文件夹加载,例如example.com正在从根文件夹文件运行,并且还有3个文件夹用于login , signup和blog 。 我已经在.htaccess文件中写入此代码来从文件夹加载子域 RewriteEngine on RewriteCond %{HTTP_HOST} ^login.example.com RewriteRule ^(.*)$ http://example.com/login/$1 [L,NC,QSA] 但它不工作,给我一个500错误。 我该怎么做?

如何在apache的反向代理configuration中将一个url重写到外部域

我有这样的configuration <VirtualHost *:80> ProxyPreserveHost Off ProxyRequests Off ServerName mooo.com ServerAlias www.mooo.com ProxyPass / http://localhost:8000/ ProxyPassReverse / http://localhost:8000/ RewriteEngine on RewriteRule "^/foo\.html$" "/admin/" [PT] </VirtualHost> 这工作正常。 现在我想重写foo.html到一些其他的外部域。 例如说,当用户打开mooo.com/foo.html我需要服务器example.com我试过 RewriteRule "^/foo\.html$" "http://example.com" [PT] 但不工作我怎么能解决这个问题?

尝试确定Apache应用程序服务器的重写,redirect或代理

我在内部运行一个Apache Web应用程序服务器,在App.domain.com。 它通过在防火墙/网关上使用端口转发作为app.domain.com:10080从外部暴露出来。 除了在开发和configuration(从外部完成)之外,Access一般可以在内部( http://app.domain.com )和外部( http://app.domain.com:10080 )进行工作,不pipe怎样,应用程序将端口(10080)存储在其configuration中,这偶尔会popup一些所服务的URL。 然后显示为"http://app.domain.com:10080/some/text/…" 这不是发生在外部的问题,而是正确parsing,但从内部访问时会产生错误,因为服务器不在端口10080上运行,而是在端口80上运行。 我现在试图解决这个问题,并想知道哪个是解决这个问题的首选方法。 我应该使用单独的VirtualHost指令简单地将10080上的请求代理到80端口: <VirtualHost *:10080> ProxyRequests Off ProxyPreserveHost On <Proxy *> AddDefaultCharset Off Order allow,deny Allow from all </Proxy> ProxyPass / http://app.domain.com/ ProxyPassReverse / http://app.domain.com/ </VirtualHost> 或者我应该使用redirect: <VirtualHost *:10080> ##{and any one of:} Redirect permanent / http://app.domain.com/ ## OR ## Redirect / http://%{HTTP_HOST}$1 ## OR ## […]

.htaccess RewriteRule不能使用root'/'

我努力得到这个.htaccess重写正常工作: <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /subdir/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule (.*) old/$1 [L] </IfModule> 我有这样的目录结构: /subdir/ .htaccess /old/ /wp/ 我希望http://myserver.com/subdir/的所有请求都被重写为http://myserver.com/subdir/old/ ,期望那些指向/ wp /目录的请求。 上面的.htaccess工作正常,当一个文件或目录被指定(例如http://myserver.com/subdir/index.html ),但只有/ subdir /存在时,它给出了一个403响应(我假设403是因为我有目录列表禁用)。 非常感谢任何能指引我正确的方向的人。

FreeBSD Server .htaccess问题

服务器详情: FreeBSD PHP版本4.3.11 Apache Appache模块: mod_mr_mod,mod_php4,mod_speedycgi,mod_ssl,mod_setenvif,mod_so,mod_unique_id,mod_headers,mod_expires,mod_auth_db,mod_auth_anon,mod_auth,mod_access,mod_rewrite,mod_alias,mod_actions,mod_cgi,mod_dir,mod_autoindex,mod_include,mod_info,mod_status,mod_negotiation,mod_mime,mod_mime_magic, mod_log_config,mod_define,mod_env,mod_vhost_alias,mod_mmap_static,http_core 我遇到的问题是,当我在.htaccess文件中编写任何types的代码时,它会引发500内部错误 我只是试图重写url,并使用wordpress为我创build的确切代码,甚至尝试之前在以前的服务器上使用的自定义代码,它仍然无法正常工作。 WordPress创build的代码: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /lobster-tail-blog/ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /lobster-tail-blog/index.php [L] </IfModule> # END WordPress 即使是这样简单的事情也会抛出错误: <IfModule mod_rewrite.c> RewriteEngine On </IfModule> 任何人都知道任何修复或为什么这是造成这个错误? 我已经加载了mod_rewrite模块

mod_rewrite和尾部斜线

我要实现 www.example.com/test/ rewrite to www.example.com/example.com/test/ www.example.com/ rewrite to www.example.com/example.com/ 我可以用这个重写configuration来做到这一点: RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ RewriteCond %{REQUEST_URI} !^/example.com(.*) RewriteCond %{REQUEST_URI} ^(.*)/$ RewriteRule ^(.*) /example.com/$1 [L] 但是我也想redirect,而不用斜杠: www.example.com/test redirect to www.example.com/example.com/test/ www.example.com/ redirect to www.example.com/example.com/ 我已经试过这个: RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ RewriteCond %{REQUEST_URI} !^/example.com(.*) RewriteCond %{REQUEST_URI} !^(.*)/$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*[^/])$ $1/ [R=301,L] 但不起作用,它redirect到: IE: http://www.example.com/C:/wamp/www/test/ Firefox: http://www.example.com/C:/wamp/www/example.com/test/ 你知道这个解决scheme吗(没有触及mod-dir […]