@9StarRu

Как исправить .htaccess, чтобы удалить news из url?

В cms все новости открываются с заранее прописанной категорией news

.htaccess

RewriteRule ^news/(.*)/(.*)$ news.php?id=$1&slug=$2
Как правильно убрать news?

Сделал так

RewriteRule ^(.*)/(.*)$ news.php?id=$1&slug=$2
работает, но теперь 404 ошибка не работает (выполняет постоянные редиректы), ее код в .htaccess

RewriteRule ^not-found$ notfound.php

и из-за этого не доступны fonts файлы.

Адреса доступны и без слеша и со слешем на конце url.

Весь .htaccess

DirectoryIndex index.php

AddDefaultCharset UTF-8

<ifModule mod_rewrite.c>

RewriteEngine on


RewriteRule ^category/(.*)/(.*)$ category.php?id=$1&slug=$2
RewriteRule ^source/(.*)/(.*)$ source.php?id=$1&slug=$2

RewriteRule ^(.*)-(.*)$ news.php?id=$1&slug=$2

RewriteRule ^page/(.*)/(.*)$ page.php?id=$1&slug=$2
RewriteRule ^search/(.*)$ search.php?q=$1

RewriteRule ^not-found$ notfound.php

RewriteRule ^rss.xml$ rss.php
RewriteRule ^sitemap-(.*).xml$ sitemap.php?id=$1
RewriteRule ^categories-sitemap.xml$ categories-sitemap.php

</ifModule>
  • Вопрос задан
  • 145 просмотров
Решения вопроса 2
shambler81
@shambler81 Куратор тега htaccess
покажи ссылки какие есть и какие должны быть
Ответ написан
@9StarRu Автор вопроса
dodo512, ваши строки работают, но перестает открываться 404 ошибка, т.е. не открывается страница 404 ошибки, просто отдается 404. Port 443
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@dodo512
В оригинале такие ссылки
https://site.ru/news/50/ostorozhno
нужны такие
https://site.ru/50-ostorozhno
желательно на конце со слешем или без, сейчас оба варианта работают.


RewriteRule ^(\d+)-([^/]+)$ news.php?id=$1&slug=$2

Если нужен в конце /
RewriteRule ^(\d+)-([^/]+)/$ news.php?id=$1&slug=$2


Ну и добавить свою страницу 404.
ErrorDocument 404 /notfound.php
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы