使用htaccess和PHP重写URL
我是htaccess的初学者。我有一个网址使用htaccess和PHP重写URL,php,.htaccess,codeigniter,Php,.htaccess,Codeigniter,我是htaccess的初学者。我有一个网址 www.example.com/article/details?id=2&category=sports&subcategory=cricket&url=ricky-ponting 我正试图在htaccess中重写此URL。 我希望上述url的格式应为: www.example.com/sports/cricket/ricky-ponting 我想从URL中隐藏文章、详细信息和id 我不知道如何创建这个URL。是否可以使用P
www.example.com/article/details?id=2&category=sports&subcategory=cricket&url=ricky-ponting
我正试图在htaccess中重写此URL。
我希望上述url的格式应为:
www.example.com/sports/cricket/ricky-ponting
我想从URL中隐藏文章、详细信息和id
我不知道如何创建这个URL。是否可以使用PHP在后端处理URL中隐藏的ID参数
提前谢谢。任何帮助都将不胜感激。通过以下代码将htaccess文件放入项目根目录中
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|(.*)\.swf|forums|images|css|downloads|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php?$1 [L,QSA]
现在您可以自定义您的url。
用户在控制器和方法之后获取参数。
比如:www.example.com/article/details/sports/cricket/ricky ponting我想你把重写和重定向混淆了。你是在使用前端控制器模式吗?如果是这样,只需使用路由库是的,您正在使用codeigniter,这应该是可能的,而不会影响.htaccess。请看这里,Codeigniter已经使用index.php作为前端控制器,所以您不必担心这一点。只需查看路由组件。如果您不想使用id,那么就不要使用,但您需要另一种方法来唯一地标识您要查找的内容,正如上面其他人所述。在你最后的评论中,
world/2018/05/21/ricky ponting
所有这些都是独一无二的(我假设类别,然后日期,然后是文章控制器中的一篇文章slug
。最好关闭get查询并按照您的意愿构建URL,这样您就不必处理.htaccess或CI自己可以处理的任何其他方式。