使用PHP清理URL

Joh*_*n R 1 php url

我正在编写一个网站,并在URL中包含关键词,如下所示:

?s=2010%20Federal%20Spending&id=115
Run Code Online (Sandbox Code Playgroud)

标题为"2010年联邦支出"的部分不用于导航; 我的网站导航完全忽略了它.我的网站只注意'id',而不是's'.再次,标题是出于SEO的原因.

是否有PHP函数来清理URL的这一部分?例如,将'%20'替换为' - '或类似的东西?

Ali*_*guy 5

你想在你的.htaccess中查看mod_rewrite

在.htaccess中添加重写规则很简单.首先,通过将此行添加到.htaccess来激活mod_rewrite:

RewriteEngine on
RewriteBase /
Run Code Online (Sandbox Code Playgroud)

然后添加规则以重定向您的网页:

RewriteRule ^([0-9]+)/([^/]+)$ /yourpage\.php?id=$1&s=$2
Run Code Online (Sandbox Code Playgroud)

这将允许您构建您的网址,如下所示:

yoursite.com/115/2010-federal-spending
Run Code Online (Sandbox Code Playgroud)

然后,在yourpage.php上:

echo $_GET['id']; // will equal 115 from the above example
echo $_GET['s']; // will equal 2010-federal-spending from the above example
Run Code Online (Sandbox Code Playgroud)