我试图创建一个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。请帮忙
答案 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是什么?尽量包括它。