.htaccess段塞url

.htaccess段塞url,.htaccess,slug,.htaccess,Slug,我想知道是否有人能帮助我,我正在尝试使用slug URL创建一个网站 此时,如果用户看到url,则类似于 但理想情况下,我希望URL是 我在数据库中有一个url友好的艺术家的名字,我想使用 目前,在.htaccess文件中,我有以下内容: RewriteEngine On RewriteBase / RewriteRule ^artists-single\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUES

我想知道是否有人能帮助我,我正在尝试使用slug URL创建一个网站

此时,如果用户看到url,则类似于

但理想情况下,我希望URL是

我在数据库中有一个url友好的艺术家的名字,我想使用

目前,在.htaccess文件中,我有以下内容:

RewriteEngine On
RewriteBase /
RewriteRule ^artists-single\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
网站本身是用PHP编写的


谢谢。

您可以让Apache访问MySql,并将“艺术家名称”映射到相应的ID(感谢@Marc B的链接)。然而,你也可以这样做(这是我个人使用的)

然后在PHP中使用
$\u GET['artist']
获取值,然后根据数据库查询该值以获取艺术家的ID

RewriteRule ^artist/([0-9]+)/?$ /artist-single.php?aid=$1 [L]

URL类似于www.example.com/artist/123,它将id传递给
$\u GET['aid']

,我建议您使用一个非常简单的前端控制器。这将给你带来最少的头痛,并且在你当前的设置中应该是相当简单的。有关更多详细信息,请在此快速浏览:


但为了给您一个快速的起点,前端控制器将是执行的“第一部分”,传统上这是“index.php”文件。使用此前端控制器,您可以拥有SEO友好的URL,并且不会在功能上更改任何核心到其他文件。

并且您的PHP代码中是否有从
$\u GET
中提供的值中查找
艺术家名称的规定?假设您的PHP代码已经可以处理查找逻辑,Apache mod_重写部分非常简单。当然可以。这不会特别有效,但这是可能的。啊,我从来不知道,谢谢你的链接。我把它编辑成了我的答案。
RewriteRule ^artist/([0-9]+)/?$ /artist-single.php?aid=$1 [L]