我遵循的很多问题都发布在stackoverflow中,但对我没有帮助,这就是为什么我严格按照我的要求进行尝试的原因。感谢您的接受。.
我尝试了很长时间,但直到现在我的问题仍未解决。问题是我试图将我的url SEO友好,例如example.com/articles.php?id=''
带到example.com/articles/my-first-article
,而slug是用php生成的,并以波纹管的形式插入数据库。
function php_slug($string){
$spl_char = '/[^\-\s\pN\pL]+/u';
$double_char = '/[\-\s]+/';
$slug = preg_replace('/[^a-z0-9-]+/', '-', strtolower($string));
$slug = preg_replace($double_char, '-', $string);
$slug = trim($string, '-');
return $slug;
}
并包含在HTACCESS中
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [L,QSA]
#RewriteCond %{REQUEST_FILENAME} !-1
#RewriteRule ^/?$ /1 [QSA]
RewriteRule ^article([a-zA-Z0-9-/]+)$ article.php?article_link=$1 [L,QSA]
RewriteRule ^article([a-zA-Z0-9-/]+)/ article.php?article_link=$1 [L,QSA]
并链接为
<a href="article/?article_link='<?php echo $article_link;?>'">BTN</a>
答案 0 :(得分:0)
请提高您的文章重写:
RewriteEngine On
RewriteRule ^article\/(.*)$ article.php?article_link=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [L,QSA]
将您的hrefs更改为漂亮的链接(重写应该抓住它们):
<a href="article/<?php echo $article_link;?>">BTN</a>