htaccess将404页面重定向到index.php
我已经改变了我的网站&url结构。 现在我想将我的旧页面(目前是404错误页面)重定向到我的主页 网址:htaccess将404页面重定向到index.php,php,apache,.htaccess,redirect,mod-rewrite,Php,Apache,.htaccess,Redirect,Mod Rewrite,我已经改变了我的网站&url结构。 现在我想将我的旧页面(目前是404错误页面)重定向到我的主页 网址: http://www.example.com/abc-def-ghi-sp(m).html 到 我在htaccess中使用了以下规则 RewriteEngine On RewriteRule ^(.*)\.html$ / [L,R=301] RewriteRule ^page\.php / [L,R=301] 上述规则很有效。 我还需要另一个重定向。但它不起作用 http://www.
http://www.example.com/abc-def-ghi-sp(m).html
到
我在htaccess中使用了以下规则
RewriteEngine On
RewriteRule ^(.*)\.html$ / [L,R=301]
RewriteRule ^page\.php / [L,R=301]
上述规则很有效。
我还需要另一个重定向。但它不起作用
http://www.example.com/page.php?name=amca&PID=143&PageID=abc
到
我在htaccess中使用了以下规则
RewriteEngine On
RewriteRule ^(.*)\.html$ / [L,R=301]
RewriteRule ^page\.php / [L,R=301]
但是结果呢
它正在显示主页
但是浏览器中的url是
http://www.example.com/?name=amca&PID=143&PageID=abc
我尝试了不同的规则。但不起作用尝试
^page\.php*$/[L,R=301]
http://www.example.com/page.php?name=amca&PID=143&PageID=abc
您只匹配了您感兴趣的模式,引擎将只替换匹配的部分。因此,您应该在感兴趣的模式之后匹配所有内容,因为它是替换的牺牲品
“*”匹配“php”之后的所有内容,“$”表示字符串的结尾。尝试
^page\.php*$/[L,R=301]
您只匹配了您感兴趣的模式,引擎将只替换匹配的部分。因此,您应该在感兴趣的模式之后匹配所有内容,因为它是替换的牺牲品
“*”匹配“php”之后的所有内容,“$”表示字符串的结尾。尝试在目标url的结尾添加一个?
RewriteRule ^page\.php /? [L,R=301]
结尾处的空问号很重要,因为它会丢弃原始查询字符串
这将重定向/fill.php?foo=bar到/而不附加旧的querystring
在测试之前,请清除浏览器的缓存。
如果要重定向带有查询字符串的特定url
你可以试试
RewriteEngine on
RewriteCond %{QUERY_STRING} ^q=foo&u=bar$ [NC]
RewriteRule ^file.php$ /? [NC,L,R]
这会将特定url/file.php?q=foo&u=bar重定向到/尝试在目标url的末尾添加一个?
RewriteRule ^page\.php /? [L,R=301]
结尾处的空问号很重要,因为它会丢弃原始查询字符串
这将重定向/fill.php?foo=bar到/而不附加旧的querystring
在测试之前,请清除浏览器的缓存。
如果要重定向带有查询字符串的特定url
你可以试试
RewriteEngine on
RewriteCond %{QUERY_STRING} ^q=foo&u=bar$ [NC]
RewriteRule ^file.php$ /? [NC,L,R]
这将把一个特定的url/file.php?q=foo&u=bar重定向到/