是否通过.htaccess将URL动态更改为SEO友好?

时间:2018-06-21 作者:SlavisaPetkovic

是否可以仅更改特定URL的URL结构?

目前:https://www.website.com/brochure/?brochure_id=new-year-guide

所需:https://www.website.com/brochure/new-year-guide

我尝试了:

RewriteRule brochure/([^&]+)/ brochure/?brochure_id=$1 [L]
RewriteRule brochure/([^&]+) brochure/?brochure_id=$1 [L]

SOLVED:

我使用了WordPress内置的add\\u rewrite\\u规则函数:

在函数中。php

add_action(\'init\', \'dcc_rewrite_tags\');
function dcc_rewrite_tags() {
    add_rewrite_tag(\'% brochure_id%\', \'([^&]+)\');
}

function custom_rewrite_rule() {
    add_rewrite_rule(\'^ brochure/([^/]*)/([^/]*)/?\',\'index.php?page_id=99&brochure_id=$matches[1]\',\'top\');
}
add_action(\'init\', \'custom_rewrite_rule\', 10, 0);
page_id=99 是连接到我的模板的页面的ID。

在模板中:

global $wp_query;
$brochure_slug = $wp_query->query_vars[\'brochure_id\'];

1 个回复
SO网友:jayrajsinh

EXAMPLE 1 - E-COMMERCE SITE

Sad原始URL=site.com/page.php?category=2&product=54

快乐URL:)=site.com/sandwiches/rueben-sandwich/

step 1:

确保所有类别名称和产品名称在数据库中都是唯一的。

step 2:

用整个网站的新URL替换对原始URL的所有引用。

step 3:

在中使用mod\\u rewrite。htaccess文件来解析URL的元素。像这样:

RewriteEngine On

RewriteRule /(.*)/(.*)/$ page.php?category=$1&product=$2
the(.*) 拉出元素并将其放入变量中$1$2.

step 4:

更新页面上的代码。php文件,通过类别和产品名称而不是ID从数据库中获取数据(这就是名称必须唯一的原因)。例如:

之前:

"select * from database_table where categegory_id=\'$category\' and product_id=\'$product\'"
之后:

"select * from database_table where categegory_name=\'$category\' and product_name=\'$product\'"
注意:这只是一个快速而简单的示例,它没有考虑为安全性而清理输入(您必须这样做),也没有考虑您可能需要在站点上执行的任何表联接。

结束

相关推荐

使用htaccess将WordPress重定向到子文件夹中的静态网站

我使用简单的静态插件创建了我的WP网站的静态副本。所有文件都在/2016/, 静态副本位于/2016/a/. 我应该添加什么.htaccess 为了使WP从example.com/2016 到example.com/2016/a?这是我现在的.htaccess:# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /2016/ RewriteRule ^index\\.ph