Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用.htaccess文件将$title添加到url_Php_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

Php 使用.htaccess文件将$title添加到url

Php 使用.htaccess文件将$title添加到url,php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,我最近得到以下答复: 现在,我想将每个id的db标题也添加到URL中。从我在互联网上看到的情况来看,这似乎是可能的。大多数情况下,我在每个php文件中都有$title,它引用数据库中的标题 目前,我正在当前的.htaccess文件中使用此文件: Options +FollowSymLinks -MultiViews RewriteEngine On RewriteBase / # Redirect cars.php?cars_item=231 to cars/231/ RewriteCond

我最近得到以下答复:

现在,我想将每个id的db标题也添加到URL中。从我在互联网上看到的情况来看,这似乎是可能的。大多数情况下,我在每个php文件中都有
$title
,它引用数据库中的标题

目前,我正在当前的.htaccess文件中使用此文件:

Options +FollowSymLinks -MultiViews

RewriteEngine On
RewriteBase /

# Redirect cars.php?cars_item=231 to cars/231/
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+cars/cars\.php\?cars_item=([^&\s]+) [NC]
RewriteRule ^ /cars/%1 [R=302,L]

# Internally forward cars/231/ to cars.php?cars_item=231
RewriteRule ^cars/([0-9]+)/?$ /cars/cars.php?cars_item=$1 [NC,L]
以及以下内容作为href:

因此,我希望我的URL如下所示。基本上,我需要将标题添加到当前URL,并用破折号替换标题中单词之间的空格

  • 汽车->子文件夹
  • 543->$id(来自数据库)
  • 新款保时捷出局->$title(来自数据库)

您只需更改上一条规则,以允许最终使用标题:

# Internally forward cars/231/title to cars.php?cars_item=231
RewriteRule ^cars/([0-9]+) /cars/cars.php?cars_item=$1 [NC,L,QSA]

谢谢你的回答,但出于某种原因,它确实起到了预期的作用。我如何在url中添加破折号而不是空格(%20)?您在浏览器中输入了什么url?@TCEU我希望您有
,并且您也将href中的
$title
中的空格替换为破折号。