我正在将系统从MVC切换到自定义代码系统。目前我们正在使用此格式的网址:
index.php?part=CAPACITOR&type=CERAMIC&model=0805&page=spec
我现在需要重写网址,比如像
这样的用户更好mysitecom/CAPACITOR/
mysitecom/CAPACITOR/CERAMIC/
mysitecom/CAPACITOR/CERAMIC/0805/spec.html#2
其中#1和#2是jquery中加载的页面。开发人员使用旧的方式使用/index.php/CAPACITOR/CERAMIC/0805/spec.html
因为我不认为在网址中使用index.php是好的,我该怎么做才能让它更好?
答案 0 :(得分:7)
以下是您需要使用的内容
RewriteEngine On
RewriteBase /
RewriteRule ^([a-z0-9\-_]+)/?$ index.php?part=$1&type=all&model=all&page=index [L,NC]
RewriteRule ^([a-z0-9\-_]+)/([a-z0-9\-_]+)/?$ index.php?part=$1&type=$2&model=all&page=index [L,NC]
RewriteRule ^([a-z0-9\-_]+)/([a-z0-9\-_]+)/([a-z0-9\-_]+)/?$ index.php?part=$1&type=$2&model=$3&page=index [L,NC]
RewriteRule ^([a-z0-9\-_]+)/([a-z0-9\-_]+)/([a-z0-9\-_]+)/([a-z0-9\-_\.]+)\.html$ index.php?part=$1&type=$2&model=$3&page=$4 [L,NC]
因此,当没有提供文件夹(示例CERAMIC)时,您可以添加一个标志来加载所有相同的模型。这意味着如果仅提供第一部分,则仅使用第一部分。从page.html
开始,默认情况下您可以加载索引。
现在,a-z0-9\-_
仅表示任何字母,数字,破折号和下划线。您可以使用([^/]+)
,如果您愿意,可以使用更多字符。
L表示last
意味着如果规则匹配,它将停止。 NC表示非大小写,因此A = a或ABC = abc。