繁体   English   中英

PHP自动创建seo友好的URL

[英]PHP auto create seo friendly url

我有PHP网址,用于显示每个页面的节目内容,如:

类别:

articles
gallery
page
books
....

网址:

http://localhost/cms/load.php?page=articles&id=1&title=this-is-a-title.html&lang=ru
http://localhost/cms/load.php?page=page&id=10&title=this-is-a-page-title.html&lang=ru

在行动中我需要像这样自动重写url到seo友好的url:

http://localhost/cms/ru/articles/1/this-is-a-title.html
http://localhost/cms/ru/page/10/this-is-a-page-title.html

load.php

$page = isset($_GET['page']) ? safeGET($_GET['page']) : null;
$id   = isset($_GET['id'])   ? safeGET($_GET['id'])   : null;
if ($page=='articles') { include 'article.php'; } elseif { ... }

我怎样才能用PHP生成这个URL (没有mod重写的偏好)?! 或者.htaccess and PHP

您可以通过以下方式实现此目的:

的.htaccess

RewriteEngine on
RewriteBase /cms/
RewriteRule ^([a-z,A-Z]+)/([a-z,A-Z]+)/([0-9]+)/([a-z,A-Z,0-9]+)$ ./load.php?page=$2&id=$3&title=$4&lang=$1 [L,NC]

这样你的load.php文件不需要改变,可以接受seo urls。

您需要更改创建网址的代码,如果您更新了当前生成网址的答案,我们也可以为您提供帮助。

我建议使用路由类。 您将添加一个htaccess文件,将所有内容重写为index.php文件,然后您将控制PHP中的所有路由。

AltoRouter是我最喜欢的一个https://github.com/dannyvankooten/AltoRouter 它的灵感来自Ruby的Sinatra,但如果您使用Google“PHP路由类”,您可以找到更多类似的类来用于路由您的URL。

为自己节省一些痛苦并使用路由框架(即http://www.slimframework.com/

虽然不包括创建 seo friendly urls (也称为slugs)

在这里,您可以找到两个有用的指南,用于了解.htacces的工作原理。 有很多很好的例子,我希望它有所帮助:

第一个指南: http //code.tutsplus.com/tutorials/the-ultimate-guide-to-htaccess-files--net-4757

第二个指南: https //www.branded3.com/blog/htaccess-mod_rewrite-ultimate-guide/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM