我已经搜索了这个网站,并且已经成功地将其重写为一个干净的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]
这在.htacces重写规则中是不可能的,因为您不能定义一个通用规则,它知道您的软件内部。如果你想在。htaccess文件中这样做,你必须为每个id创建一个规则,这将导致一个非常大且不方便的。htaccess文件。
为直接脚本调用获得重定向的更好方法是,在php文件本身中进行重定向并设置http状态码(即。301 -永久移动)。获取请求的url,您可以使用$_SERVER['REQUEST_URI']
并在开头检查/record.php