我遵循的很多问题都发布在stackoverflow中,但对我没有帮助,这就是为什么我完全按照我的要求进行尝试。感谢接受..
我试了很久但直到现在我的问题才解决。问题是我试图把我的网址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>
请提升你的文章重写:
RewriteEngine On
RewriteRule ^article\/(.*)$ article.php?article_link=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\.]+)$ $1.php [L,QSA]
将您的href更改为preety链接(重写应该捕获它们):
<a href="article/<?php echo $article_link;?>">BTN</a>