.htaccess 多重重写条件 - 在第二个条件中使用第一个条件匹配的部分
.htaccess multiple rewrite condtion - using first condition matched parts in second condition
我可以在第二个条件中使用第一个条件匹配项吗?
例 -:
RewriteCond %{HTTP_HOST} ^(.*).example.com$
RewriteCond %{REQUEST_URI} != (First condition matched item)
更新 -
我的示例 htaccess 文件
RewriteEngine On
RewriteBase /assets
RewriteCond %{HTTP_HOST} ^(.*).dam.nissanka.com$
RewriteRule ^(.*)$ /assets/%1/dam/collection/a.txt? [L,R=301]
url 尝试 - www.dam.nissanka.com/assets/dam/collection/a.txt
这递归地重定向到 www.dam.nissanka.com/www/assets/dam/collection/a.txt。我需要停止递归
您可以将这两个条件合二为一,并像这样使用对早期捕获组的反向引用:
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:(?!//).*$
你的.htaccess可以是这样的:
RewriteEngine On
RewriteBase /assets/
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:/assets/(?!/).*$
RewriteRule ^(.*)$ %1/dam/collection/a.txt? [L,R=302]
我可以在第二个条件中使用第一个条件匹配项吗?
例 -:
RewriteCond %{HTTP_HOST} ^(.*).example.com$
RewriteCond %{REQUEST_URI} != (First condition matched item)
更新 -
我的示例 htaccess 文件
RewriteEngine On
RewriteBase /assets
RewriteCond %{HTTP_HOST} ^(.*).dam.nissanka.com$
RewriteRule ^(.*)$ /assets/%1/dam/collection/a.txt? [L,R=301]
url 尝试 - www.dam.nissanka.com/assets/dam/collection/a.txt
这递归地重定向到 www.dam.nissanka.com/www/assets/dam/collection/a.txt。我需要停止递归
您可以将这两个条件合二为一,并像这样使用对早期捕获组的反向引用:
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:(?!//).*$
你的.htaccess可以是这样的:
RewriteEngine On
RewriteBase /assets/
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:/assets/(?!/).*$
RewriteRule ^(.*)$ %1/dam/collection/a.txt? [L,R=302]