htaccess无法将文章ID重定向到使用php slug函数生成的文章slug

问题描述 投票:0回答:1

我遵循的很多问题都发布在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>
php .htaccess friendly-url slug
1个回答
0
投票

请提升你的文章重写:

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>
© www.soinside.com 2019 - 2024. All rights reserved.