htaccess для динамического перезаписи URL с расширением.html на основе выбора URL

Я пытаюсь переписать какой-то динамический URL-адрес страницы, в которой данные берутся из базы данных с помощью slug вроде "this-is-a-link".

        Options +FollowSymlinks
        RewriteEngine On

        RewriteBase /testweb/

        RewriteCond %{REQUEST_FILENAME} !-d [NC]
        RewriteCond %{REQUEST_FILENAME} !-f [NC]
        RewriteRule ^(.*)$ faq_pages.php?page=$1 [QSA,L]

Он отлично работает с http://www.test.com/testweb/this-is-a-link

Но мне нужно изменить правило перезаписи, основываясь на любой ссылке, нажатой ниже.

http://www.test.com/testweb/faq/this-is-a-link, 'testweb / news / this-is-another-link', '/ testweb / testimonials / test-link'

"Faq_pages.php" в приведенном выше RewriteRule должен быть изменен на "news_pages.php". Как я могу иметь это динамически, чтобы я мог использовать для каждой страницы с тем же htaccess или как я могу проверить и переписать значение на разных страницах в htaccess.

Также, пожалуйста, посоветуйте мне, как исправить приведенный ниже код.

        Options +FollowSymlinks
        RewriteEngine on
        RewriteRule ^(.*)\.html$ faq_pages.php?page=$1

Мне нужно показать URL-адреса html в адресной строке, например "/testweb/this-is-a-link.html" или "/testweb/faq/this-is-a-link.html".

Изменить: с помощью Джона Лин я обновил мои коды, как показано ниже.

        Options +FollowSymlinks
        RewriteEngine On

        RewriteBase /testweb/

        RewriteCond %{REQUEST_FILENAME} !-d [NC]
        RewriteCond %{REQUEST_FILENAME} !-f [NC]
        RewriteRule ^faq/(.*?)/?$ faq_pages.php?page=$1 [QSA]

Теперь оба следующих условия работают: /testweb/faq/another-faq-test.html,
/testweb/faq/another-faq-test.html/

Поскольку у меня нет подпапки с именем faq, файлы шаблонов (images/css/js и т. Д.) В корневой папке не загружаются. Как я могу это исправить?

Благодарю вас

1 ответ

Решение

Вы ищете что-то подобное?

    Options +FollowSymlinks
    RewriteEngine On

    RewriteBase /testweb/

    RewriteCond %{REQUEST_FILENAME} !-d [NC]
    RewriteCond %{REQUEST_FILENAME} !-f [NC]
    RewriteRule ^faq/(.*)$ faq_pages.php?page=$1 [QSA,L]

    RewriteCond %{REQUEST_FILENAME} !-d [NC]
    RewriteCond %{REQUEST_FILENAME} !-f [NC]
    RewriteRule ^news/(.*)$ news_pages.php?page=$1 [QSA,L]
Другие вопросы по тегам