【问题标题】:Using RewriteRule to write URL from page/unique_id to page.php?id=unique_id使用 RewriteRule 将 URL 从 page/unique_id 写入 page.php?id=unique_id
【发布时间】:2015-12-22 22:44:27
【问题描述】:

我正在尝试将我的 URL 从 http://jacqueskoekemoer.co.za/article/5 格式化为 http://jacqueskoekemoer.co.za/article?i=5,其中 i 将是数据库中的文章 ID。

目前this URL 有效。但是this one 没有。它确实将 url 更改为 article.php,但它没有将查询字符串添加到末尾。

我知道这一点是因为它没有出现在 print_r($_REQUEST);print_r($_GET);

我在 .htaccess 文件中做错了什么,或者您能否建议我可以查看的其他资源来解决问题?

我主要使用以下 2 个 URL 来使 RewriteRule 正常工作。

URL 1

URL 2

.htaccess 文件中,规则重写部分如下所示: 重写引擎开启

RewriteRule ^article/$ article.php?i=$1 [L] # Handle requests for "article"
#RewriteRule ^article/$/ article.php?i=$1 [NC,L] # Handle requests for "article"

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

【问题讨论】:

    标签: apache .htaccess url-rewriting friendly-url


    【解决方案1】:

    使用以下规则:

    RewriteEngine on
    
    RewriteRule ^article/(\d+)$ article.php?i=$1 [L]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteRule ^(.*)$ $1.php [L]
    

    【讨论】:

    • 如果我现在想添加第二个要重写的 URL,我假设我需要在文章行下面添加一行,如下所示:RewriteRule ^kb/(\d+)$ kb.php ?tags=$1 [L]
    • @JacquesKoekemoer 正确。
    猜你喜欢
    • 2016-06-29
    • 2010-10-03
    • 2013-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-09
    相关资源
    最近更新 更多