首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >名替换ID的mod_rewrite

名替换ID的mod_rewrite
EN

Stack Overflow用户
提问于 2014-01-18 11:34:47
回答 1查看 1.1K关注 0票数 0

我的网站上有一个动态显示内容的页面。URL结构是mywebsite.com/giveaway/giveaway.php?id=(any number),我希望将该动态URL更改为静态/友好的URL mywebsite.com/giveaway/name-of-giveaway-corresponding-to-id。在根文件夹中找到的.htaccess文件中,我有以下内容:

代码语言:javascript
复制
    RewriteEngine On

    # external redirect from actual URL to pretty one
    RewriteCond %{THE_REQUEST} \s/+\?page=([^\s&]+) [NC]
    RewriteRule ^ /page/%1? [R=301,L]

    # existing rule
    RewriteRule ^page/([^/]+)/?$ /?page=$1 [L,QSA]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [L]

当前的.htaccess文件移除.php,并且重定向和更改我的站点上的URL。

mywebsite.com?page=numbermywebsite.com/page/number

我知道您必须从我的数据库中获取与php中ID对应的名称,并使用它,但我不知道如何在.htaccess文件中编写代码,或者如何使用和传递数据库的结果。谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-19 14:33:12

我不知道这是否是您的意思,但是您不能将重写引擎(它是底层Apache服务器层的一部分)连接到必须由php访问的数据库。

因此,您不能直接将“赠与名称-对应- id”重写到id,您需要将其重写为类似于giveaway.php?nameofgiveaway=(giveaway的名称)的内容,然后在数据库中搜索该字符串。

您的方法是添加一个重写规则,如

代码语言:javascript
复制
RewriteRule ^giveaway/([^/]+)$ giveaway.php?nameofgiveaway=$1 [L,QSA] 

(没有测试,所以如果出了问题请原谅我),然后搜索$_GET‘’nameofgiveaway‘。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21203525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档