【问题标题】:Using PHP how do I make a rewrite rule? [duplicate]使用 PHP 如何制定重写规则? [复制]
【发布时间】:2009-10-15 20:41:17
【问题描述】:

第一次使用 mod rewrite。请帮我解决这些规则

我希望为页面重写我的网址,如下所示:

list.php?city=dallas >>> list/city/dallas

profile.php?id=12 >>> profile/zaknuman(从数据库中检索的用户名)

story.php?id=33 >>> story/there-are-no-ants-in-texas(从 db 检索到的故事标题)

【问题讨论】:

    标签: php apache mod-rewrite url-rewriting


    【解决方案1】:
    RewriteRule list/city/([a-zA-Z])$ list.php?city=$1
    

    它应该匹配最后一个斜杠之后的 a-z 和 A-Z 范围内的每个字符。

    另外两个我相信你需要在数据库中嵌入 slug('zaknuman' 和 'there-are-no-ants-in-texas'),然后你就可以从数据库并以这种方式获取您的 ID,访问:

    RewriteRule profile/(.*)$ profile.php?slug=$1
    
    RewriteRule story/(.*)$ story.php?slug=$1
    

    最后 2 个匹配最后一个斜杠后的每个字符。

    编辑:不要忘记确保您的 .htaccess 文件或 Apache 配置中有“RewriteEngine On”!

    【讨论】:

    • 别忘了标记字符串的开始。
    • @Gumbo - 是的,我故意离开开始,因为 OP 没有提到他们使用的 URL 路径。不过好点 - @gAMBOOKa,在规则的开头添加一个 ^ 以匹配字符串的开头。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多