.htaccess 如何让这些修改生效?

.htaccess 如何让这些修改生效?,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,我做301重定向有两个问题。我在域上的旧CMS没有被使用,我正试图找出如何正确重定向,如果匹配的东西 1) 从url中删除查询字符串并执行重定向。 以下是试图访问的URL搜索引擎,它们应该重定向到主页index.php 例如: 目标: 或 例如: 目标: 或 例如: 目标: 以下是我到目前为止尝试的代码,但它不起作用: RewriteCond %{QUERY_STRING} ^dispatch$ RewriteRule ^(.*)$ http://www.mysite.com/$1? [R=

我做301重定向有两个问题。我在域上的旧CMS没有被使用,我正试图找出如何正确重定向,如果匹配的东西

1) 从url中删除查询字符串并执行重定向。 以下是试图访问的URL搜索引擎,它们应该重定向到主页index.php

例如:

目标:

例如:

目标:

例如:

目标:

以下是我到目前为止尝试的代码,但它不起作用:

RewriteCond %{QUERY_STRING} ^dispatch$  
RewriteRule ^(.*)$ http://www.mysite.com/$1? [R=301,L] 
2) 我的另一个问题是,由于某种原因,我的网站在搜索引擎中通过url=parameter存在重复项。比如说,

例如:

目标:

基本上,它们都是相同的页面,但当你考虑到我的分类页面和其他单独的页面都是通过url=访问的时候,那就不对了。基本上,我想做的是将301返回到主mysite.com。为此,我尝试了以下代码,但也不起作用:

RewriteCond %{QUERY_STRING} ^url$  
RewriteRule ^(.*)index.php$ http://www.mysite.com/$1? [R=301,L] 
******----编辑:----****** 完整的htaccess文件:

Options -Indexes
Options +SymLinksIfOwnerMatch
<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteCond %{HTTP_HOST} ^mysite.com
  RewriteRule (.*) http://www.mysite.com/$1 [R=301,L]
  RewriteRule ^([a-z0-9/-]+)-p-([0-9]+).html$ my-pages.php [NC,L,QSA]
</IfModule>

RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} (\<|%3C).*iframe.*(\>|%3E) [NC,OR]
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2})
RewriteCond %{QUERY_STRING} (;|'|"|%22).*(union|select|insert|drop|update|md5|benchmark|or|and|if).* [NC]
RewriteCond %{QUERY_STRING} ^(.*)/self/(.*)$ [NC]
RewriteCond %{QUERY_STRING} mosConfig_[a-zA-Z_]{1,21}(=|\%3D) [OR]
RewriteRule ^(.*)$ error_page.php [F,L]
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

ErrorDocument 400 /error_page.php?error_id=400
ErrorDocument 401 /error_page.php?error_id=401
ErrorDocument 403 /error_page.php?error_id=403
ErrorDocument 404 /error_page.php?error_id=404
ErrorDocument 405 /error_page.php?error_id=405
ErrorDocument 408 /error_page.php?error_id=408
ErrorDocument 415 /error_page.php?error_id=415
ErrorDocument 500 /error_page.php?error_id=500
ErrorDocument 501 /error_page.php?error_id=501
ErrorDocument 502 /error_page.php?error_id=502
ErrorDocument 503 /error_page.php?error_id=503
ErrorDocument 505 /error_page.php?error_id=505
ErrorDocument 504 /error_page.php?error_id=504

<FilesMatch "\.(inc|tpl|h|ihtml|sql|ini|conf|class|bin|spd|theme|module|exe)$">
    deny from all
</FilesMatch>

<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
    Satisfy All
</Files>

SetEnvIfNoCase User-Agent "^libwww-perl*" block_bad_bots
Deny from env=block_bad_bots
RewriteCond %{HTTP_USER_AGENT} libwww-perl [OR]
RewriteCond %{QUERY_STRING} tool25 [OR]
RewriteCond %{QUERY_STRING} cmd.txt [OR]
RewriteCond %{QUERY_STRING} cmd.gif [OR]
RewriteCond %{QUERY_STRING} r57shell [OR]
RewriteCond %{QUERY_STRING} c99 [OR]

<Files 403.shtml>
order allow,deny
allow from all
</Files>
选项-索引
选项+符号链接所有者匹配
重新启动发动机
重写基/
重写cond%{HTTP_HOST}^mysite.com
重写规则(.*)http://www.mysite.com/$1[R=301,L]
重写规则^([a-z0-9/-]+)-p-([0-9]+).html$my-pages.php[NC,L,QSA]
重写cond%{QUERY_STRING}base64_encode.\(.*)[或]
重写条件%{QUERY\u STRING}(\\\\%3E)[NC,或]
重写条件%{QUERY\u STRING}(\\\\%3E)[NC,或]
重写条件%{QUERY\u STRING}全局(|\[|\%[0-9A-Z]{0,2})[或]
重写条件%{QUERY\u STRING}\u请求(|\[|\%[0-9A-Z]{0,2})
重写cond%{QUERY_STRING}(;|'|“|%22)。*(联合|选择|插入|删除|更新| md5 |基准|或|和|如果)。*[NC]
RewriteCond%{QUERY_STRING}^(.*)/self/(.*)$[NC]
重写cond%{QUERY\u STRING}mosConfig\[a-zA-Z\]{1,21}(\\%3D)[或]
重写规则^(.*)$error_page.php[F,L]
重写cond%{REQUEST_METHOD}^(跟踪|跟踪)
重写规则。*-[F]
ErrorDocument 400/error\u page.php?error\u id=400
ErrorDocument 401/error\u page.php?error\u id=401
ErrorDocument 403/error\u page.php?error\u id=403
ErrorDocument 404/error\u page.php?error\u id=404
ErrorDocument 405/error\u page.php?error\u id=405
ErrorDocument 408/error\u page.php?error\u id=408
ErrorDocument 415/error_page.php?error_id=415
ErrorDocument 500/error\u page.php?error\u id=500
ErrorDocument 501/error\u page.php?error\u id=501
ErrorDocument 502/error\u page.php?error\u id=502
ErrorDocument 503/error\u page.php?error\u id=503
ErrorDocument 505/error\u page.php?error\u id=505
ErrorDocument 504/error\u page.php?error\u id=504
全盘否定
命令允许,拒绝
全盘否定
满足所有
SetEnvifLocase用户代理“^libwww perl*”阻止坏机器人程序
拒绝来自环境=阻止坏机器人
RewriteCond%{HTTP_USER_AGENT}libwww perl[OR]
重写cond%{QUERY_STRING}tool25[或]
RewriteCond%{QUERY_STRING}cmd.txt[或]
RewriteCond%{QUERY_STRING}cmd.gif[或]
RewriteCond%{QUERY_STRING}r57shell[或]
重写cond%{QUERY_STRING}c99[或]
命令允许,拒绝
通融
试试这个

RewriteCond %{QUERY_STRING} ^dispatch  
RewriteRule ^(.*)$ / [R=301,L] 


RewriteCond %{QUERY_STRING} ^index.php\?dispatch  
RewriteRule ^(.*)$ / [R=301,L] 

RewriteCond %{QUERY_STRING} ^url=http://www.mysite.com
RewriteRule ^(.*)$ / [R=301,L] 

给出一些URL和目标URL的示例。@zimbaao:Done。根据您的request@Zimbabo:第一个创建循环并抛出错误。第二个不起作用。我完全按照您发布的内容复制粘贴。请提供建议。谢谢这些是您仅有的重写?或者您添加了一些?如果有,请粘贴它们more@Zimbabao:完成。我已经发布了完整的re-htaccess供您参考。再次感谢您启用“重写日志”,RewriteLog/path/to/logdir/RewriteLog RewriteLogLevel 9并查看发生了什么。我不知道发生的原因。@Zimbabaao:我无法让“重写日志”正常工作。我不断收到500个内部服务器错误。