1

我已经搜索了该站点,并且已经成功地重写了一个干净的 URL。只是需要更多的帮助。

我有一个页面,其中包含已成功重写为干净 URL 的记录,如下所示:

domain/record.php?id=1685 > to > domain/record-Gavin-Rees-1685使用以下:

.htaccess 文件:

RewriteRule ^record-(.*)-(.*)$ /record.php?id=$2 [L]

这在我的 php 文件中:

$temp=str_replace(' ','-', $record [record_name]);
$temp=str_replace('.','', $temp);

<a href='/record-". $temp ."-".$record[id]." '>

这很完美。问题是。

我不能让它以另一种方式重写,所以如果你直接去:

/record.php?id=1685 it still exists. i tried > RewriteRule ^record.php?id=$ /record-(.*)-(.*)$ [R,L]
4

1 回答 1

0

这在 .htacces 重写规则中是不可能的,因为您无法定义一个通用规则,该规则了解您的软件内部结构。如果要在 .htaccess 文件中执行此操作,则必须为每个 id 创建一个规则,这将导致一个非常大且不方便的 .htaccess 文件。

获得直接脚本调用重定向的更好方法是,在 php 文件本身中进行重定向并设置 http 状态代码(即 301 - 永久移动)。获取请求的 url,您可以在开始时使用$_SERVER['REQUEST_URI']并检查/record.php

于 2013-03-21T16:48:43.487 回答