【问题标题】:.htaccess Pretty URLs title in url.htaccess 漂亮的 URL 在 url 中的标题
【发布时间】:2015-05-16 00:32:29
【问题描述】:

我正在尝试制作漂亮的 url,但想将内容标题放在 url 中而不是 id 中,然后我将内容标题放在带有查询字符串的 url 中:

index.php?action=content&id=22

改为:

index.php?action=content&title=stack-over-flow

它工作正常。现在我试图让它变得漂亮,但在 htaccess 代码中遇到了问题。

在 url 代码中删除 id 之前是:

RewriteRule ^([a-z]+)/([0-9]+)/?$ index.php?action=$1&id=$2 [NC,L,QSA]

然后我改为:

RewriteRule ^([a-z]+)/([a-z]+)/?$ content.php?action=$1&title=$2 [NC,L,QSA]

但它不起作用,我会返回 300 Multiple Choices 页面。好吧,我认为这是一个 htaccess 问题,但我是 htaccess 的新手,需要帮助解决这个问题。

想要这个:

/content/stack-over-flow

【问题讨论】:

    标签: php .htaccess mod-rewrite url-rewriting pretty-urls


    【解决方案1】:

    您的正则表达式只允许字母。它还应该允许连字符、数字、大写字母和下划线。试试这个:

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([a-z]+)/([^/]+)/?$ content.php?action=$1&title=$2 [NC,L,QSA]
    

    【讨论】:

    • 只有一个问题。它在标题为英文时有效,对于非英文标题,我再次获得 300 个多项选择页面。它得到像这样的非英文字符:/content/ÙØ±ÙˆØ´Ú¯Ø§Ù‡-جدید-Ú¯ÙˆÚ¯Ù„这个呢?
    猜你喜欢
    • 2011-03-09
    • 1970-01-01
    • 2023-02-26
    • 2011-01-02
    • 2014-09-24
    • 2019-02-27
    • 2016-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多