horoskop, recepti in galerija ven s folx.tv: pripomocki z naslovnice, povezave iz glave in noge, poti 301 na naslovnico, iz sitemapa (GA4: 318 ogledov od 96.307 v 28 dneh)
This commit is contained in:
@@ -60,21 +60,6 @@ export default function Footer({ narrow }: { narrow?: boolean }) {
|
||||
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-video">Video</span>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/gallery">
|
||||
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-gallery">Fotogalerie</span>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/horoskop">
|
||||
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-horoskop">Horoskop</span>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/rezepte">
|
||||
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-rezepte">Rezepte</span>
|
||||
</Link>
|
||||
</li>
|
||||
<li>
|
||||
<Link href="/kontakt">
|
||||
<span className="text-muted-foreground cursor-pointer hover:text-primary transition-colors" data-testid="link-footer-kontakt-cat">Kontakt</span>
|
||||
|
||||
@@ -9,9 +9,6 @@ const navItems = [
|
||||
{ label: "Start", href: "/" },
|
||||
{ label: "News", href: "/category/News" },
|
||||
{ label: "Video", href: "/videos" },
|
||||
{ label: "Galerie", href: "/gallery" },
|
||||
{ label: "Horoskop", href: "/horoskop" },
|
||||
{ label: "Rezepte", href: "/rezepte" },
|
||||
{ label: "Kontakt", href: "/kontakt" },
|
||||
];
|
||||
|
||||
|
||||
@@ -11,9 +11,6 @@ import { Skeleton } from "@/components/ui/skeleton";
|
||||
import Header from "@/components/header";
|
||||
import Footer from "@/components/footer";
|
||||
import AdSense, { ArticleCardAd, SidebarAd, PageSideAds, MultiplexAd, TopBannerAd } from "@/components/adsense";
|
||||
import { PhotoGalleryWidget } from "@/components/photo-gallery";
|
||||
import { HoroscopeWidget } from "@/components/horoscope-widget";
|
||||
import { RecipeWidget } from "@/components/recipe-widget";
|
||||
import { NewsWidget } from "@/components/news-widget";
|
||||
import { SidebarWeatherWidget } from "@/components/weather-widget";
|
||||
import { BreakingNewsWidget } from "@/components/breaking-news-widget";
|
||||
@@ -825,16 +822,13 @@ export default function Home() {
|
||||
return out;
|
||||
}, [shuffled]);
|
||||
|
||||
// 30. 8. 2026: horoskop, recept in galerija so vzeti z naslovnice. Po GA4 so
|
||||
// v 28 dneh naredili 242, 60 in 16 ogledov od 96.307, clanki pa 93.001.
|
||||
// Sprosceni prostor gre clankom.
|
||||
const widgets = useMemo(() => [
|
||||
{ id: "horoscope", el: <HoroscopeWidget key="horoscope" /> },
|
||||
{ id: "news", el: <div key="news" className="flex flex-col gap-4"><NewsWidget /></div> },
|
||||
{ id: "gallery", el: <PhotoGalleryWidget key="gallery" /> },
|
||||
{ id: "recipe", el: <RecipeWidget key="recipe" /> },
|
||||
{ id: "breaking", el: <div key="breaking" className="flex flex-col gap-4"><BreakingNewsWidget /></div> },
|
||||
{ id: "gallery2", el: <PhotoGalleryWidget key="gallery2" reverseOrder={true} /> },
|
||||
{ id: "horoscope2", el: <HoroscopeWidget key="horoscope2" /> },
|
||||
{ id: "news2", el: <div key="news2" className="flex flex-col gap-4"><NewsWidget /></div> },
|
||||
{ id: "recipe2", el: <RecipeWidget key="recipe2" /> },
|
||||
{ id: "breaking2", el: <div key="breaking2" className="flex flex-col gap-4"><BreakingNewsWidget /></div> },
|
||||
], []);
|
||||
|
||||
@@ -918,12 +912,10 @@ export default function Home() {
|
||||
const bottomSection = useMemo(() => {
|
||||
const items: { type: "widget" | "ad" | "article"; el: JSX.Element }[] = [
|
||||
{ type: "widget", el: <NewsWidget key="bottom-news" /> },
|
||||
{ type: "widget", el: <HoroscopeWidget key="bottom-horoscope" /> },
|
||||
{ type: "widget", el: <BreakingNewsWidget key="bottom-breaking" /> },
|
||||
{ type: "article", el: <BlogCard key={`bottom-art-0`} article={bottomArticles[0]} focalPoints={focalPoints} /> },
|
||||
{ type: "ad", el: <div key="ad-bottom-1"><ArticleCardAd /></div> },
|
||||
{ type: "article", el: <BlogCard key={`bottom-art-1`} article={bottomArticles[1]} focalPoints={focalPoints} /> },
|
||||
{ type: "widget", el: <PhotoGalleryWidget key="bottom-gallery" /> },
|
||||
{ type: "article", el: <BlogCard key={`bottom-art-2`} article={bottomArticles[2]} focalPoints={focalPoints} /> },
|
||||
{ type: "article", el: <BlogCard key={`bottom-art-3`} article={bottomArticles[3]} focalPoints={focalPoints} /> },
|
||||
{ type: "article", el: <BlogCard key={`bottom-art-4`} article={bottomArticles[4]} focalPoints={focalPoints} /> },
|
||||
|
||||
+2
-2
@@ -147,8 +147,8 @@ export async function registerRoutes(
|
||||
// POZOR: tu smejo biti samo poti, ki jih pozna React router v App.tsx.
|
||||
// Prej so bile "/news", "/video", "/galerie" — teh poti ni, zato je Google
|
||||
// dobival soft 404. Prave so "/category/News", "/videos", "/gallery".
|
||||
const staticPaths = ["/", "/category/News", "/videos", "/gallery",
|
||||
"/horoskop", "/rezepte", "/empfang-folx-tv", "/ueber-uns",
|
||||
const staticPaths = ["/", "/category/News", "/videos",
|
||||
"/empfang-folx-tv", "/ueber-uns",
|
||||
"/kontakt", "/impressum", "/datenschutz"];
|
||||
const urls: string[] = [];
|
||||
for (const p of staticPaths) {
|
||||
|
||||
@@ -339,6 +339,12 @@ export function serveStatic(app: Express) {
|
||||
"Aktuelles": "",
|
||||
};
|
||||
const pathOnly = url.split("?")[0].split("#")[0];
|
||||
// 30. 8. 2026: horoskop, recepti in galerija so ukinjeni. Stare povezave
|
||||
// ne smejo v 404, zato gredo trajno na naslovnico.
|
||||
if (/^\/(horoskop|rezepte|gallery|galerie)(\/.*)?$/.test(pathOnly)) {
|
||||
res.redirect(301, "/");
|
||||
return;
|
||||
}
|
||||
if (/^\/aktuelles\/?$/.test(pathOnly)) {
|
||||
res.redirect(301, `${NEWS_HOST}/`);
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user