将复杂的变更为简单的URL&删除Index.php

时间:2014-05-15 06:42:28

标签: php mysql apache .htaccess

我一直在尝试&搜索很多,但找不到任何解决方案,我在.htaccess中尝试了很多东西

我的网站的网址 mysite.org/torrents.php

对此 mysite.org/Browse

此 mysite.org/torrents.php?parent_cat=Movie

到这个

mysite.org/Movie

这个

mysite.org/account-details.php?id=737

到这个

mysite.org/user/username

2 个答案:

答案 0 :(得分:0)

尝试使用this。它是一个htaccess发生器。如果这不起作用,您将需要检查php.ini设置,看它是否允许这种类型的链接。

答案 1 :(得分:0)

您的链接无法正常运行,即/用户/用户名无法使用ID号,您可以传递用户名,然后根据用户名进行查找,但htaccess赢了&知道用户名" tim"是id号" 123"

这应该有效:

RewriteEngine On

RewriteRule "user/([0-9]*)"             account-details.php?id=$1
RewriteRule "category/([a-zA-Z0-9_-]*)" torrents.php?parent_cat=$1
RewriteRule "browse"                    torrents.php
RewriteRule ""                          torrents.php

我已将这些类别分成了一个名为' category'的子文件夹。这样可以更容易地允许您想要的任何类别名称。

对于RewriteRules中的正则表达式匹配,这是一个很好的免费程序,名为“Expresso”。这将有助于您构建正则表达式并根据值列表对其进行测试,以确定它们是否匹配,我建议您搜索并获取副本,因为它非常方便。

如果您想使用用户名而不是用户ID号,那么对于用户名部分,则交换:

RewriteRule "user/([0-9]*)" account-details.php?id=$1

到此:

RewriteRule "user/([a-zA-Z0-9_-]*)" account-details.php?username=$1