从 header 读取后字符串为空

String is null after reading it from header

我有一个 .htaccess 文件,其中有一些重定向:

RewriteEngine On    # Turn on the rewriting engine
RewriteRule    ^termekek/kategoriak/?$    kategoriak.php    [NC,L]    # Kategóriák rd
RewriteRule    ^termekek/?$    kategoriak.php    [NC,L]    # Kategóriák rd
RewriteRule    ^termekek/kategoriak/([A-Za-z]+)/([0-9-])/?$    kategoria.php?category_name=&page_number=    [QSA,NC,L]    # Kategória rd
RewriteRule    ^termekek/kategoriak/([A-Za-z]+)/?$    kategoria.php?category_name=&page_number=1    [QSA,NC,L]    # Kategória rd
RewriteRule    ^termekek/kategoriak/([A-Za-z]+)/([A-Za-z0-9-]+)/?$    termek.php?category_name=&product_name=    [QSA,NC,L]    # Termék rd

RewriteRule    ^hir/([A-Za-z-0-9-]+)/?$    hir.php?seo_link=   [QSA,L]    # Hírek rd

RewriteRule    ^rolunk/?$    rolunk.php    [NC,L]    # Márka rd
RewriteRule    ^markaboltok/?$    markaboltok.php    [NC,L]    # Márkaboltok rd
RewriteRule    ^kapcsolat/?$    kapcsolat.php    [NC,L]    # Kapcsolat rd
RewriteRule    ^hirek/?$    hirek.php    [NC,L]    # Hírek rd

RewriteRule    ^404/?$    404.php    [NC,L]   # 404 error rd

ErrorDocument 404 http://example.com/404/

我有一个页面不想按照我的意愿行事。

<?php
include 'functions.php';
include 'config/connection.php';

$seo_link = $_GET['seo_link'];
…

$seo_link 为空,但其他网站即使使用重定向也能按预期工作。我的重定向有什么问题吗? 我想阅读的模式是:http://www.example.com/hir.php?seo_link=something-from-the-database

这将被翻译成:http://www.example.com/hir/something-from-the-database/

提前致谢!

您的正则表达式 (z-0) 上有一个额外的 -,请尝试使用:

RewriteRule    ^hir/([A-Za-z0-9\-]+)/$    hir.php?seo_link=   [QSA,L]    # Hírek rd

重写规则的 'hir' 部分似乎与文件名 'hir.php' 冲突。

尝试调整它,使重写规则的第一部分不同于文件名:

RewriteRule    ^hir2/([A-Za-z-0-9-]+)/?$    hir.php?seo_link=   [QSA,L]    # Hírek rd