【发布时间】:2014-10-27 14:33:21
【问题描述】:
我创建了一个新功能,希望实现面包屑和更好的 URL 结构。
在此之前我有以下规则:
RewriteRule ^pages/([a-z0-9,&-]+)/?$ ?action=viewArticleName&page_identifier=$1 [L,NC,QSA,B]
这意味着;
www.example.com/pages/contact
从数据库返回一篇文章。现在我想改变它,让我的网址看起来像
www.example.com/categoryname/pagename
所以我的工作重写规则:
RewriteRule ^([^/]+)/([^/]+)$ /?action=viewCategoryName&categoryName=$1&page_identifier=$2 [L]
问题是这个 RewriteRule 会导致 /images 中包含的任何图像加载文章的包含模板。
我能想到三种可能的解决方案,但不是实际的代码:
1) 我可以创建一个类别名称数组吗?然后我可以以某种方式使 RewriteRule 仅适用于这些名称。
2) 创建一个包含一些全局设置的类。在这有一些定义或设置图像路径的 php。我能想到的是;
define( "IMAGE_PATH", "//example.com/images" );
3) 向 Htacces 文件添加一些内容以从规则中排除某些路径。
我知道 MVC 或类似的东西会取得更好的结果。这是关于我的学习,如果我在这里挖了一个洞,请告诉我!
非常感谢, 亚当
【问题讨论】:
标签: php regex apache .htaccess mod-rewrite