Articles of rewritecond

重写cond域名和www.domain letsencrypt

我在/etc/apache2/sites-available/cv.conf有这个虚拟主机 <VirtualHost *:80> ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/cv/web <Directory /var/www/cv/web> AllowOverride All Order Allow,Deny Allow from All </Directory> ErrorLog ${APACHE_LOG_DIR}/cv_error.log CustomLog ${APACHE_LOG_DIR}/cv_access.log combined RewriteEngine on RewriteCond %{SERVER_NAME} =www.example.com [OR] RewriteCond %{SERVER_NAME} =example.com RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent] </VirtualHost> 行Rewrite*已经被letsencrypt添加了,我检查了谷歌,这似乎是这样做的好方法。 但是当我去domain.com它不redirect到https://example.com (它加载000-default.conf)。 不过,当我访问www.example.com时,它会将我redirect到https://www.example.com 你有什么主意吗? 我不知道如何debugging。 日志确认我在说什么,当我在domain.com上时,cv_access.log不打印任何请求。

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>做类似的事情,但是恢复了它。 有人能指出我在这里做错了什么吗?

安全301redirect使用htaccess的两个域名

我有两个域名,一个新域名(newdomain.com)和旧域名(olddomain.com)。 我想安全地将旧域redirect到新域。 很简单。 目前我正在使用htaccess ModReWrite这样做 # Redirect WWW's RewriteEngine On RewriteCond %{HTTP_HOST} !^newdomain\.com$ [NC] RewriteRule ^(.*)$ http://newdomain.com/$1 [R=301,L] 基本上说,重写任何不是新的领域,新的领域。 我不是100%确定这是否对search引擎安全? 我应该单独redirect旧域吗?

将多个查询string与RewriteCond进行匹配

我在CGI脚本的Apacheconfiguration文件中有以下configuration: RewriteEngine on RewriteCond %{QUERY_STRING} !^/var/log/syslog-ng/JBoss.*$ RewriteRule ^/cgi-bin/(.*)$ /secure-cgi-bin/$1 [R=301,L,QSA] 这个想法是,如果有人使用CGI脚本来查看除/var/log/syslog-ng/JBoss之外的path,则应该通过安全的CGI脚本redirect它们。 现在我想改变RewriteCond以便在不通过安全CGI的情况下也可以查看第二条path。 第二个path是/var/log/syslog-ng/Tomcat 。 我如何去做这个改变?

redirectURL,包括文件夹path

我有以下重写规则设置: rewritecond %{http_host} ^domain.com [nc] rewriterule ^(.*)$ http://domain2.com/$1 [r=301,nc] 现在这工作redirectdomain.com/index.htm到domain2.com/index.htm但是它不会redirect任何文件夹,例如domain.com/folder/将不会redirect到domain2.com/folder/

Apache重写不按预期重写

我试图使用mod_rewrite将用户redirect到HTTPS等价的URL,除非URL是用于我的Jenkins CI服务器。 这是我在我的默认站点configuration(我的jenkins和其他网站有自己的VirtualHost条目: <VirtualHost _default_:80> ServerAdmin [email protected] RewriteEngine on ReWriteCond %{SERVER_PORT} !^443$ ReWriteCond %{REQUEST_URI} !^.+/jenkins/(.*)$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R,L] </VirtualHost> 任何帮助将不胜感激。 编辑:按要求,这里是apache2ctl -S的输出: VirtualHost configuration: wildcard NameVirtualHosts and _default_ servers: *:443 is a NameVirtualHost default server ip-10-72-226-167.ec2.internal (/etc/apache2/sites-enabled/default-ssl:2) port 443 namevhost ip-10-72-226-167.ec2.internal (/etc/apache2/sites-enabled/default-ssl:2) port 443 namevhost qa.example.com (/etc/apache2/sites-enabled/example-ssl:2) *:80 is a NameVirtualHost default server ip-10-72-226-167.ec2.internal […]

RewriteCond和wwwlogging

在我的httpd.ini中,我将所有stream量从“example.co.uk”redirect到“www.example.co.uk”,下面的工作正常: RewriteCond %HTTPS off RewriteCond Host: (?!^www.example.co.uk)(.+) RewriteRule /(.*) http\://www.example.co.uk/$2 [I,RP] 我也有一些微型网站也使用这个网站,说:“www.foobar.co.uk”,在IIS 6的主机头设置。有了上述规则,“www.foobar.co.uk”结束于“ www.example.co.uk“! 有没有一个RewriteCond我可以做的反对请求,以确保请求是“example.co.uk”不捕获微型网站,并重写这些? 或者甚至更好,我可以采取任何方式,无论是“example.co.uk”还是“foobar.co.uk”,只是在它前面的WWW? 谢谢你的帮助。

Apache的mod_rewriteredirect与前缀

我是Apache的mod_rewrite新手,我有一些困难得到它做我想要的。 在我的静态目录中,我有一些JavaScript文件( .js )与2种文件名: xxxx.js这是标准的文件名 AT_xxxx.js (带有前缀的文件名),与以前的标准文件名重复,但也包含我的自定义 我想parsing每个标准请求的JavaScript文件( xxxx.js )的请求,以检查包含所有子目录的自定义文件是否存在( AT_xxxx.js )。 然后,在这种情况下,使用自定义文件而不是标准文件(也许通过内部redirect)。 我试图弄清楚这个好几个小时,但还是有一些错误。 注意:另外,我不知道如何在子目录中find自定义文件。 DocumentRoot "/data/apps/dev0/custom/my_static" <filesMatch "\\.(js)$"> Options +FollowSymLinks RewriteEngine on RewriteCond %{DOCUMENT_ROOT}/AT_$1.js -f RewriteRule ^(.*[^/])/?$ %{DOCUMENT_ROOT}/AT_$1.js [QSA,L] </filesMatch>

将所有页面除外的所有页面都redirect到HTTP

我使用下面的重写规则将2个php页面redirect到https(以保护用户数据),但是每当我点击这些php页面上的任何链接时,它们都会使用https进行redirect,页面无法正确显示。 底部的规则是为了将任何其他页面redirect回http,但它们不起作用。 任何意见将不胜感激! RewriteEngine on RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} ^/securepage1.php$ [NC] RewriteRule ^(.*)$ https://www.example.com$1 [L,R=301] RewriteCond %{HTTPS} off RewriteCond %{REQUEST_URI} ^/securepage2.php$ [NC] RewriteRule ^(.*)$ https://www.example.com$1 [L,R=301] RewriteCond %{HTTPS} on RewriteCond %{REQUEST_URI} !^/securepage1.php$ [NC] RewriteCond %{REQUEST_URI} !^/securepage2.php$ [NC] RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]

Apache达到内部redirect限制

我有以下问题: Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. Apache试图到达不存在的文件。 这是我的.htaccess: RewriteEngine on Options +FollowSymlinks RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ RewriteCond %{REQUEST_URI} !^/subfolder/$ RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ /subfolder/$1 RewriteRule ^\??$ index.php [L] 我打开了日志,在日志里有这样的: […]