Articles of mod rewrite

mod_rewrite用path后面的下划线replace所有的点

我已经在这里和所有标记的问题,但我的问题是不同的,因为要么replace“ . ”与“ _ ”是在一个特定的path后,我正在通过proxypass运行。 我正在尝试改变: http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some.machinename.com 至: http://somedomainname.com/grafana/dashboard/db/generic-ping?var-device=SF-some_machinename_com 码: 选项+ FollowSymLinks RewriteEngine On ProxyPreserveHost打开 ProxyPass / grafana http://100.65.7.97:3000 ProxyPassReverse / grafana http://100.65.7.97:3000 我已经尝试了很多东西,几个小时后,浏览serverfault / stackoverflow / webmasters.stackexchange /谷歌等。但我没有尝试成功redirect。 我不知道为什么。 我试过的一些东西(以及它们的变体): RewriteRule ^([^\.]*)\ (.*)$ $1_$2 [E=%E2:yes,N] RewriteCond %{ENV:%E2} yes RewriteRule (.*) http://%{HTTP_HOST}$1 [R=301,L] … RewriteRule ^(/?grafana/dashboard/db/.*/[^/]*?).([^/]*?.[^/]*)$ $1_$2 [N] RewriteRule ^(/?grafana/dashboard/db/.*/[^/]*?).([^/.]*)$ $1_$2 [R=301] … RewriteCond %{REQUEST_URI} […]

这个RewriteRule做什么?

我正在尝试将重写规则从apache迁移到nginx。 任何人都可以解释一下 RewriteRule ^api/.$ – [L] 呢?

使用htaccess将所有来自多个域的stream量redirect到单个域

我在我的服务器上托pipe了多个网站,所有这些网站都共享一个htaccess的相同代码库。 我需要这样的东西。 如果(域名!= example.com)redirect到example.com 如果有任何处理这个从htaccess的方式 使用以下但仍然不工作 RewriteCond !^(.*)$ https://example1.com/$1 [NC] RewriteRule ^(.*)$ https://example2.com/$1 [R=301,NC,L]

Apache htaccessredirecthttp / www到https /非www

redirect – http://www.domain.com – http://domain.com – https://www.domain.com 到https://domain.com 即时通讯使用以下(Apache)htaccess的: <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] </IfModule> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC] RewriteRule ^ https://%1%{REQUEST_URI} [R=301,L] </IfModule> # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ – [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} […]

我可以只redirect我的主页到www

当我通过这个代码,它redirect我的整个网站。 但是当我想去ticket.mysite.com它给了我404,因为它将我redirect到www.ticket.mysite.com,但我不希望这与子域。 RewriteEngine On RewriteCond %{HTTP_HOST} !^www\. RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L] 我已经试图从子域中的地图上通过一个没有上述代码,但这是行不通的。

在代理请求中重写用户和密码

我需要在通过Apache 2.4反向代理的请求中重写客户端authenticationscheme。 具体来说,我想忽略提供的用户名和密码,并强制所有请求相同的用户名和密码。 那可行吗?

如何在此htaccess文件中重写规则时发现内部服务器错误?

我有一个htaccess文件,开始如下所示: RewriteEngine On RewriteBase / RewriteCond %{QUERY_STRING} where-can-i-find-information-about-homer-training RewriteRule ^(.*)$ http://usersupport.homerenergy.com/customer/en/portal/articles/2186858-where-can-i-find-information-about-homer-training-? [R=301,L] RewriteCond %{QUERY_STRING} is-homer-pro-conservative-in-its-predictions RewriteRule ^(.*)$ http://usersupport.homerenergy.com/customer/en/portal/articles/2186859-is-homer-pro-conservative-in-its-predictions-? [R=301,L] … 继续执行308条更类似的规则。 如您所见,这意味着将一列文章从一个网站redirect到另一个网站,其中匹配元素是GETstring的查询部分中的文章名称。 如果我只是在文件中放入一对或两对RewriteCond / RewriteRule ,这是RewriteRule的。 但是,当我使用整个文件,我得到一个500内部服务器错误。 显然,其中一个规则是导致错误,但扫描文件,我不明白这是什么。 看看错误日志,我可以看到这样的消息: /var/www/html/.htaccess: RewriteCond: bad argument line '%{QUERY_STRING}' 这并没有告诉我很多。 我怎么知道哪个规则导致这个错误?

如何redirect/服务/服务/一次?

通过htaccess文件我试图redirect/services /services/onetime但它redirect到/services/onetime/onetime/onetime/… 代码有什么问题,有没有办法做到这一点? 这是我用过的代码: redirect 301 /services/ /services/onetime/

Apache重写规则冲突

我正在研究Apache 2.4中的一个重写规则,其中任何以.pdf /结尾的URL都应该添加一个查询参数并将其转换为.pdf?q ​​= pdf。 例如: http : //www.example.com/us/elections.pdf/应该转换为http://www.example.com/us/elections.pdf?q=pdf 我试图使用下面的规则,它的工作 RedirectMatch 301 ^(。*)。pdf / $ 1.pdf?q ​​= pdf 问题是我们也有一些像{hostname} /us/elections.pdf/ node /img.thumbnail.png 为此,上面的规则是在节点之前添加q = pdf并像{hostname} /us/elections.pdf?q=pdf_node_/img.thumbnail.png 我怎样才能避免这种情况发生? 我怎样才能改变我的规则,使其只适用于.pdf /最后的链接? 任何帮助将是伟大的。

将所有请求redirect到除某些文件夹以外的域

我尝试将所有请求从一个域redirect到一个子域,除了/mypath和下面的所有东西。 例子: example.com -> sub.example.com example.com/somestuff -> sub.example.com 但是example.com/my-path不应该被redirect。 这里是负责configuration的部分: RewriteCond %{HTTP_HOST} ^example.com$ RewriteCond %{REQUEST_URI} !^/my-path/ RewriteRule ^/?(.*)$ "http\:\/\/sub\.example\.com" [R=301,L] 问题是我无法实现目标,我不知道这里有什么问题。 我试图find一个实现相同的目标,但没有运气的例子。