Php 搜索引擎优化友好的术语语法
我正在编写一个脚本,它将从URL中选择一个术语,并根据该术语从我的数据库中提取正确的数据 到目前为止,我已经在.htaccess文件中添加了一行内容,可以将我的URL重写为SEO友好的格式,例如:Php 搜索引擎优化友好的术语语法,php,jquery,.htaccess,Php,Jquery,.htaccess,我正在编写一个脚本,它将从URL中选择一个术语,并根据该术语从我的数据库中提取正确的数据 到目前为止,我已经在.htaccess文件中添加了一行内容,可以将我的URL重写为SEO友好的格式,例如: http://mydomain.com/catalogue/some-item-name 在实际的PHP页面上,我获取了变量strip破折号 $item= str_replace('-', ' ', $_GET['item']); 并将该项与我的页面上的隐藏列表相匹配,以使用jQuery提取匹配项
http://mydomain.com/catalogue/some-item-name
在实际的PHP页面上,我获取了变量strip破折号
$item= str_replace('-', ' ', $_GET['item']);
并将该项与我的页面上的隐藏列表相匹配,以使用jQuery提取匹配项
一切正常,除非我的物品名称中有破折号。我的脚本删除所有破折号。我应该:
谢谢。我们使用一个系统,在该系统中,我们根据数据库检查传入的URI,并查看向何处发送用户。这样,我们就可以从系统内部(比如id)完全分离URI 我们将传入URI与数据库中的
URI
字段相匹配,并从正确的类(控制器)或重定向加载正确的函数。它还可以选择向函数发送参数
让我举个例子
+---------+---------+----------+----------+--------+
| uri | class | function | new_uri | vars |
+---------+---------+----------+----------+--------+
| faq | support | faq | | |
+---------+---------+----------+----------+--------+
| sandwich| content | news | | 1 |
+---------+---------+----------+----------+--------+
| banana | | | sandwich | |
+---------+---------+----------+----------+--------+
案例1:
用户请求test.com/faq,URI路由器在URI='faq'上找到匹配项,并告诉系统在支持类或控制器中显示任何faq()
案例2:
用户请求test.com/sandwich,这是ID为1的新闻报道的快捷方式。因此,URI路由器向content类中的news()
发送一个调用,我们可以从变量$\u GET['vars'][0]
中检索id 1
案例3:
用户请求test.com/banana,由于我们不再从事香蕉行业,因此已将其移动到test.com/sandwich。因此URI路由器礼貌地发送301并将用户重定向到正确的位置
此方法有多种扩展方式,例如允许在uri字段中使用通配符等。希望它也能对您有所帮助。大多数网站的工作方式类似于stackoverflow(检查URL),因此简而言之:
http://mydomain.com/catalogue/12345/some-item-nam
然后您只需引用ID即可(因此文本根本不重要).为什么不将URI重写为http://mydomain.com/catalogue/ID/some-item-name
并使用(数字)ID获取项目?如果两个项目具有相同的名称(或名称被重写后具有相同的名称),这同样有效。是的,我也在考虑这样做,但在我这么做之前,我想我会尝试在不使用id的情况下找出答案。@santa这取决于您的应用程序。如果它只是一个博客,你就不会想要URL中的ID,因为直接链接会违反直觉。如果它是一个购物或其他东西,链接会腐烂。它不是一个博客,而是一个参考应用程序。我更喜欢保持URL干净和SEO友好。目前,我使用jQuery使用:$(“#my_item”).text()提取该项;有没有办法使“模糊”匹配?但如果我将我的项目设置为$item=“my item one”,并且我可以潜在地将其匹配为:“my item one”,这对我有什么帮助?好吧,您必须为URL的外观制定某种规则集。我决定去掉非单词字符,用破折号替换所有空格。所以首先我做一个初始替换,用破折号和一些特殊字符替换空白,然后我做preg_替换('/[^\w-]/I','.$slug)
。结果是可读性很好的URI,只要规则不变,就应该匹配。