大家好,
我将网站从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]
答案 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]
让我知道这是如何运作的。