我需要将所有请求重定向到这个链接。
https://www.example.com/firstAccess?utm_source=Newsletter&utm_medium=email&utm_content=Benvenuto+su+Magazzino+Perfetto&utm_campaign=Benvenuto+Analytics
在此链接上:
https://www.example.com/firstAccess因此,我需要删除单词firstAccess之后的所有内容。
发布于 2017-09-30 14:20:14
要删除的URL的其他部分是查询字符串。您需要使用mod_rewrite检查查询字符串(并在不留下尾随?的情况下删除它)。
尝试类似于.htaccess文件顶部附近的以下内容:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^utm_source=Newsletter&utm_medium=email&utm_content=Benvenuto+su+Magazzino+Perfetto&utm_campaign=Benvenuto+Analytics$
RewriteRule ^(firstAccess)$ /$1? [R,L]这与您的问题中所述的确切URL相匹配。
$1反向引用只是为了避免重复。
替换上的尾随?确保从重定向URL中删除查询字符串。如果使用Apache 2.4+,则可以使用QSD (查询字符串丢弃)标志。
发布于 2017-10-03 07:32:44
完整的.htaccess是:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^utm_source=Newsletter&utm_medium=email&utm_content=Benvenuto+su+Magazzino+Perfetto&utm_campaign=Benvenuto+Analytics$
RewriteRule ^(firstAccess)$ /$1? [R,L]
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
# Always set these headers.
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
</IfModule>https://stackoverflow.com/questions/46501826
复制相似问题