【问题标题】:url rewrite in php for change posts url在 php 中重写 url 以更改帖子 url
【发布时间】:2015-11-10 00:58:02
【问题描述】:

我要更改网址:

http://example.com/posts.php?action=view&id="a number"

http://example.com/posts/"a number"

我将这些写入 .htaccess 文件,但它们不起作用:

RewriteEngine On
RewriteRule    ^posts/([0-9]+)/?$    posts.php?action=view&id=$1    [NC,L]
RewriteRule    ^posts/?$    posts.php    [NC,L]

【问题讨论】:

    标签: apache .htaccess mod-rewrite friendly-url


    【解决方案1】:

    会是这样的:

    RewriteEngine On
    RewriteCond %{THE_REQUEST} ^GET\ /(posts)\.php\?action=view&id=(\d+) [NC]
    RewriteRule ^posts\.php$ /%1/%2? [R=301,L,NC]
    
    RewriteCond %{THE_REQUEST} ^GET\ /(posts)\.php\ HTTP [NC]
    RewriteRule ^posts\.php$ /%1/? [R=301,L,NC]
    
    RewriteRule ^(posts)/(\d+)/?$ /$1.php?action=view&id=$2 [L]
    RewriteRule ^(posts)/?$ /$1.php [L]
    

    【讨论】:

    • 嗨,我用这个,但是当我去 example.com/posts/ 时,我找不到 404,当我在帖子中点击 example.com/posts/13 时,我看到了这个链接:mahmoodcms.com/posts/posts.php?action=view&id=13。我需要更改我的 php 文件以更改链接 posts.php?action=view&id=anumber?
    • 嗨,现在,正确,但是你能把posts.php重写为posts/吗?谢谢。
    • @MahmoodHojabri 更新了上面的帖子。
    • @MahmoodHojabri 如果回复有帮助,请将其作为答案接受,并且该问题不会在 QnA 列表中显示为未回答。
    • 嗨,谢谢,你能为这些代码写一个描述吗?谢谢?
    【解决方案2】:

    您可以在 .htaccess 文件中尝试以下操作

    .htaccess 文件代码:

    RewriteEngine On
    RewriteRule   ^posts/([0-9]+)   /posts.php?action=view&id=$1    [QSA,L]
    

    QSA 表示如果有一个查询字符串与原始 URL 一起传递,它将被附加到重写。

    L表示如果规则匹配,则不再处理该规则下面的RewriteRules

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    相关资源
    最近更新 更多