htaccess не может перенаправить идентификатор статьи в слаг статьи, сгенерированный функцией php slug - PullRequest
0 голосов
/ 17 февраля 2019

Есть много вопросов, за которыми я следовал, которые опубликованы в stackoverflow, но они мне не помогли, поэтому я стараюсь в точности соответствовать моим требованиям.Спасибо, что приняли ..

Я давно пытаюсь, но моя проблема до сих пор не решена.Проблема в том, что я пытаюсь сделать мой URL-адрес дружественным, например, example.com/articles.php?id='' до example.com/articles/my-first-article, в то время как слаг генерируется с помощью 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>

1 Ответ

0 голосов
/ 17 февраля 2019

Пожалуйста, переместите вашу статью переписать:

RewriteEngine On

RewriteRule ^article\/(.*)$ article.php?article_link=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^([^\.]+)$ $1.php [L,QSA]

Измените ваши hrefs на preety ссылки (переписать должно поймать их):

<a href="article/<?php echo $article_link;?>">BTN</a>
...