我使用htaccess传递2个变量。主题&品牌
RewriteRule ^([A-Za-z0-9_-]+)/?$ ?subject=$1 [NC,L]
RewriteRule ^([A-Za-z0-9_-]+)/?$ ?brand=$1 [NC,L]
在我的函数文件中,我正在使用页面检测来包含各自的模块。
if (!empty($_REQUEST['subject']))
{
include_once("templates/pages.php");
}
else if (!empty($_REQUEST['brand']))
{
include_once("templates/brands_content.php");
}
问题: 我无法检测到变量....它总是加载“templates / pages.php” 任何人都可以指导我解决这个问题。
感谢
答案 0 :(得分:0)
第二条规则RewriteRule ^([A-Za-z0-9_-]+)/?$ ?brand=$1 [NC,L]
将永远不会匹配,因为您请求的任何网址与第一条网格匹配(对于主题)。对于主题或品牌,URL的显示方式显然没有区别。
http://yourdomain.com/12345
“12345”是品牌还是主题?您需要制作正则表达式以匹配主题和品牌互斥(或者如果不是,主题,第一条规则,将始终首先匹配),或者您可以通过将其添加到您的URI中明确说出什么是品牌或主题:
http://yourdomain.com/subject/12345
http://yourdomain.com/brand/12345
因此你的规则是:
RewriteRule ^subject/([A-Za-z0-9_-]+)/?$ ?subject=$1 [NC,L]
RewriteRule ^brand/([A-Za-z0-9_-]+)/?$ ?brand=$1 [NC,L]