2016-01-28 198 views
1

我改变了我的网站&的url结构。 现在我想重定向我的旧页面(目前是404错误页面)到我的主页。htaccess重定向404页面到index.php

网址:

http://www.example.com/abc-def-ghi-sp(m).html 

http://www.example.com 

我在htaccess的

RewriteEngine On 
RewriteRule ^(.*)\.html$/[L,R=301] 

以上规则工作正常使用下面的规则。 而且我还需要另一个redirection.But它不工作

http://www.example.com/page.php?name=amca&PID=143&PageID=abc 

http://www.example.com 

我已经使用htaccess的

RewriteRule ^page\.php/[L,R=301] 

以下规则但结果

它显示了主页。

但在浏览器的URL是

http://www.example.com/?name=amca&PID=143&PageID=abc 

我已经尝试了不同的rule.But不工作

回答

0

尝试添加一个在目标网址的末尾。

RewriteRule ^page\.php /? [L,R=301] 

空的问号在最后很重要,因为它会丢弃原有的查询字符串。

这会将/fill.php?foo=bar重定向到/不附加旧的querystrings。

在测试之前清空浏览器的缓存。

如果你想重定向与查询字符串一个spacific网址,

您可以尝试

RewriteEngine on 


RewriteCond %{QUERY_STRING} ^q=foo&u=bar$ [NC] 
RewriteRule ^file.php$ /? [NC,L,R] 

这将重定向特定的URL /file.php?q=foo & U =酒吧/

+1

谢谢。它的工作正常。 – user2214646

0

尝试^page\.php*$/[L,R=301]

你是只匹配你感兴趣的模式,和发动机将只替换匹配的零件。所以你应该在感兴趣的模式之后匹配所有的东西,以便它成为替换的受害者。

“*”匹配“php”和“$”后的所有内容用于表示字符串的结尾。

相关问题