试图让mod_rewrite工作

时间:2011-02-27 03:58:15

标签: apache .htaccess mod-rewrite

我有这个问题,我将CMS从旧的切换到新的,所以我试图正确地重定向网址。

以下是我想转换的一些示例网址:

#-1) http://www.mysite.com/?dispatch=search_data&features=hash_tag
#-2) http://www.mysite.com/index.php?dispatch=search_data&features=hash_tag

基本上它们都是相同的,除了第一个在url中没有index.php。

我得到以下代码以部分工作:

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

上面的代码适用于#-1(当没有index.php时)但是当有index.php时它不起作用。

非常感谢任何帮助/指导。

由于

__ _ __ _ __ _ ___ 更新 _ __ _ __ _ __ _ __ < EM> _ __

根据请求,以下是目标网址的内容:                        http://www.mysite.com/

3 个答案:

答案 0 :(得分:2)

你是什么意思“有效”?

您应该发布一个示例,说明您希望新网址在给定旧网址时的效果。

但无论如何,您的部分问题是RewriteRule行明确排除了index.php以及您网站上的任何其他网页。

你写的内容基本上转化为:

if the query string contains "dispatch=...":
    redirect requests FOR THE HOME PAGE ONLY (^$) to http://www.mysite.com/

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您是否尝试过更改第二部分以包含“index.php”部分?

RewriteRule ^$ http://www.mysite.com/index.php? [L,R=301]