.HTACCESS - 删除部分网址后删除

时间:2018-05-03 10:31:04

标签: .htaccess

大家好,

我将网站从http移至https。然后我去谷歌搜索并访问了网页网址。但是,而不是访问正常的Url:

https://example.com/handbook-of-neurosurgery

Google给了我另一个链接:

https://example.com/handbook-of-neurosurgery?名_ID =手册-的神经外科

如何使用.htaccess删除多余的网址?

非常感谢你的帮助!

我的.htaccess

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


RewriteRule ^([a-zA-Z0-9_-]+)?$ /download.php?name_id=$1&%{QUERY_STRING} 

ErrorDocument 404 /404.php

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L]

1 个答案:

答案 0 :(得分:0)

您可以尝试使用此规则删除查询字符串。

RewriteCond %{QUERY_STRING} ^name_id=(.+) [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L,NE]

完整.htaccess

ErrorDocument 404 /404.php

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)?$ /download.php?name_id=$1&%{QUERY_STRING} [L] 

RewriteCond %{QUERY_STRING} ^name_id=(.+) [NC]
RewriteRule ^ %{REQUEST_URI}? [R=301,L,NE]

RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1$1 [R=301,L]

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L]

让我知道这是如何运作的。