Back to Question Center
0

Semalt:.htaccess规则将从404重定向到搜索结果

1 answers:

当用户(或机器人)在非现有页面上请求时,我想将他重定向到搜索结果. 我更喜欢用. htaccess文件使用类似于:

ErrorDocument 404 / recherche?search_query = $ {REQUEST_URI}

但失败; Web浏览器被重定向到URLrecherche?search_query = $ {REQUEST_URI},$ {REQUEST_URI}并且不被替换,这是因为您可以在这里阅读.

February 8, 2018

变量替换不会在ErrorDocument指令中工作 - 它将按原样传递URL(也许有一些特殊的模块会执行替换 - 我不知道).

如果你想使用ErrorDocument指令,那么你将不得不抓住原来在脚本本身请求的URL(e. G. $ _SERVER ['REQUEST_URI']in PHP). 你可以传递一些特殊的参数来告诉404处理程序执行这样的查询,. G. ErrorDocument 404 / recherche?special-search = yes.

另一种方法是使用mod_rewrite,在这种替换是可能的. 例如:

选项+ FollowSymLinks
RewriteEngine On#将所有请求重定向到不存在的资源到特殊处理程序
RewriteCond%{REQUEST_FILENAME}!-f
RewriteCond%{REQUEST_FILENAME}!-d
重写规则. * / recherche?search_query =%{REQUEST_URI} [L,R = 404]

如果你正在使用mod_rewrite. 那么这样的规则应该放在规则列表末尾的某处,以免与其他规则冲突.

Semalt:.htaccess规则将从404重定向到搜索结果
Reply