重定向.htaccess和?

时间:2017-09-30 10:23:15

标签: .htaccess mod-rewrite

我需要将所有请求重定向到此链接

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后的所有内容。

完整的.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]

             选项-MultiViews     

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}]

始终设置这些标题。

标题始终设置Access-Control-Allow-Origin“*” 标题始终设置Access-Control-Allow-Methods“POST,GET,OPTIONS,DELETE,PUT” 标题始终设置Access-Control-Max-Age“1000” 标题始终设置Access-Control-Allow-Headers“x-requested-with,Content-Type,origin,authorization,accept,client-security-token”

RewriteEngine On RewriteCond%{REQUEST_METHOD}选项 RewriteRule ^(。*)$ $ 1 [R = 200,L]

2 个答案:

答案 0 :(得分:0)

您要删除的网址的其他部分是查询字符串。您需要使用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]

这与您问题中所述的确切网址相符。

$1反向引用只是为了避免重复。

substitution 上的尾随?可确保从重定向的网址中删除查询字符串。如果使用Apache 2.4+,则可以改为使用QSD(查询字符串丢弃)标志。

答案 1 :(得分:0)

完整的.htaccess是:

             选项-MultiViews     

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}]

RewriteCond %{QUERY_STRING} ^utm_source=Newsletter&utm_medium=email&utm_content=Benvenuto+su+Magazzino+Perfetto&utm_campaign=Benvenuto+Analytics$
RewriteRule ^(firstAccess)$ /$1? [R,L]

始终设置这些标题。

标题始终设置Access-Control-Allow-Origin" *" 标题总是设置Access-Control-Allow-Methods" POST,GET,OPTIONS,DELETE,PUT" 标题始终设置Access-Control-Max-Age" 1000" 标题始终设置Access-Control-Allow-Headers" x-requested-with,Content-Type,origin,authorization,accept,client-security-token"

RewriteEngine On RewriteCond%{REQUEST_METHOD}选项 RewriteRule ^(。*)$ $ 1 [R = 200,L]