url Slug php和htaccess问题

时间:2015-03-30 16:07:15

标签: php .htaccess

我试图创建一个slug从主页跳转到文章页面,标题为slug。

这是我的.htaccess代码:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^post/([a-zA-Z0-9_]-)/([0-9]+)\$ article.php?id_art=$1 [NC,L]

这是我的php链接:

<a href='article/post/$id_art/$slug'><button class='read-more-btn'>Read more</button></a>

url中的slug看起来很像:

http://localhost/sitename/article/post/8/the-slug-i-want-to-appear

但我得到了这个结果:

找不到对象!
错误404

问题是什么人?我猜它是.htaccess。请帮忙

2 个答案:

答案 0 :(得分:1)

你的正则表达式倒退了。您有post然后ID然后slug,但您的正则表达式匹配post然后slug(数字/字母/下划线),然后是ID。尝试:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^post/([0-9]+)/([a-zA-Z0-9_-]+)/?$ article.php?id_art=$1 [NC,L]

请注意,您应该收到表达式的错误:[a-zA-Z0-9_]-,这是无效的。

答案 1 :(得分:0)

可能是因为您的规则与^post/匹配(但您没有文章规则,请尝试RewriteRule ^article/post/([a-zA-Z0-9_]-)/([0-9]+)\$ article.php?id_art=$1 [NC,L]`并查看是否有帮助。

您还有sitename不在规则中。您尝试使用链接中的article.php重写的原始URL是什么?尽量包括它。