.htaccess Opencart搜索页面作为SEO url

1qczuiv0  于 2023-02-05  发布在  SEO
关注(0)|答案(1)|浏览(172)

试图让我的搜索结果页面搜索引擎优化友好..似乎很基本,但我的标签重写规则是冲突的。
(它也使用product/search路由器)--禁用标签重写,搜索似乎仍然不能正常工作。它显示它想要的任何东西,即使我搜索一个不存在的项目。(这种行为不会发生在正常的索引下。php?route=product/search URL)
.htaccess权限:

RewriteRule ^tags/([^/]*)$ index.php?route=product/search&tag=%{QUERY_STRING} [L]
RewriteRule ^search/([^/]*)$ index.php?route=product/search&search=%{QUERY_STRING} [L]

目录/控制器/启动/seo_url.php:

} elseif ($data['route'] == 'product/search' && $key == 'tag') {

                    $url .= '/tags/' . str_replace(' ','-',$value);

                    unset($data[$key]);

                } elseif ($data['route'] == 'product/search' && $key !== 'tag') {

                    $url .= '/search/' . str_replace(' ','-',$value);

                    unset($data[$key]);
                    //....

有没有办法重写这两条路线,而不选择其中之一?
使用Opencart 2.3.0

2ekbmq32

2ekbmq321#

目录/控制器/启动/seo_url.php**

查找:

$this->request->get['route'] = 'error/not_found';

加上:

if (strpos($this->request->get['_route_'], 'tag/') !== false) {
                            $this->request->get['route'] = 'product/search';
                            $this->request->get['tag'] = str_replace('tag/','',$this->request->get['_route_']);
                        }
                        elseif (strpos($this->request->get['_route_'], 'search/') !== false) {
                            $this->request->get['route'] = 'product/search';
                            $this->request->get['search'] = str_replace('search/','',$this->request->get['_route_']);
                        }

                    else {
                        $this->request->get['route'] = 'error/not_found';
                    }

.网址:

RewriteRule ^tag/([^/]*)$ index.php?route=product/search&tag=$1 [L]
RewriteRule ^search/(.*)$ index.php?route=product/search&search=$1 [L]

相关问题