我的网站上有一个动态显示内容的页面。URL结构是mywebsite.com/giveaway/giveaway.php?id=(any number),我希望将该动态URL更改为静态/友好的URL mywebsite.com/giveaway/name-of-giveaway-corresponding-to-id。在根文件夹中找到的.htaccess文件中,我有以下内容:
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=number到mywebsite.com/page/number
我知道您必须从我的数据库中获取与php中ID对应的名称,并使用它,但我不知道如何在.htaccess文件中编写代码,或者如何使用和传递数据库的结果。谢谢你的帮助!
发布于 2014-01-19 14:33:12
我不知道这是否是您的意思,但是您不能将重写引擎(它是底层Apache服务器层的一部分)连接到必须由php访问的数据库。
因此,您不能直接将“赠与名称-对应- id”重写到id,您需要将其重写为类似于giveaway.php?nameofgiveaway=(giveaway的名称)的内容,然后在数据库中搜索该字符串。
您的方法是添加一个重写规则,如
RewriteRule ^giveaway/([^/]+)$ giveaway.php?nameofgiveaway=$1 [L,QSA] (没有测试,所以如果出了问题请原谅我),然后搜索$_GET‘’nameofgiveaway‘。
https://stackoverflow.com/questions/21203525
复制相似问题