【发布时间】:2013-12-03 17:39:35
【问题描述】:
我有一个 catalogue.php 文件,其中包含通过 mysql 查询(行)到works.php 文件的链接。法语中的相同内容(sommaire.php 到 oeuvres.php)。 $img 是表格列中的标题,$i 遍历行并给出一个数字。 链接是这样创建的:
<? echo "<p><a href='work--".StandardizeString($img)."_".($i)."' >
$img</a></p>";
$i++;
?>
然后我有一个重写规则:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^oeuvre--(.*)_(.*)$ oeuvres.php?&tittle=$1&page=$2 [L]
RewriteRule ^work--(.*)_(.*)$ works.php?&tittle=$1&page=$2 [L]
这会创建一个 url *sitename/work--title_linenumber* 我希望 url 是 *sitename/title_linenumber* 或理想情况下 sitename/title 因为每个目录的标题都是唯一的。 我花了很多时间试图去除行号,但无济于事,所以我准备放弃了。这就是为什么我把它放在最后。但我希望 work-- 消失。
【问题讨论】:
-
为什么不简单地从 php 输出你想要的链接并避免处理重写?
-
我很感兴趣。不知道如何在没有 mod rewrite 的情况下将 mysql 查询重写为 url。明天我也会研究这个解决方案。谢谢
-
忽略我最后的评论。所以你正在尝试做一个双语网站?而您正在尝试删除 id?:您想要
mysite.com/work/title-of-work和mysite.com/oeuvres/title-of-work吗? -
是的,理想情况下,网址中没有 ID。目前,每个“艺术家”都有一个存储 php 文件的子目录。所以理想的 url 是 'mysite.com/artist/name-of-the-work。我目前拥有的是 mysite.com/artist/work--name-of-the-work_id.com 或法语版的“oeuvre”而不是“work”
标签: php mysql regex apache .htaccess