Php Apache Mod Rewrite keep get参数
首先,我不是mod rewrite的专家,但我有一个URL需要重定向 原始URL是Php Apache Mod Rewrite keep get参数,php,apache,mod-rewrite,Php,Apache,Mod Rewrite,首先,我不是mod rewrite的专家,但我有一个URL需要重定向 原始URL是categories.asp?cat1=1&cat2=2&cat3=58&cat4=96 我需要将其重定向到/store/browse/category/TRADITIONAL-BRIDGE-SINK-MIXER/product details/1901 TRADITIONAL-BRIDGE-SINK-MIXER NDSMC 很明显,将会有很多这样的事情要做,我很高兴依次写下每一条规则 我希望这是有道理的 提前谢谢
categories.asp?cat1=1&cat2=2&cat3=58&cat4=96
我需要将其重定向到/store/browse/category/TRADITIONAL-BRIDGE-SINK-MIXER/product details/1901 TRADITIONAL-BRIDGE-SINK-MIXER NDSMC
很明显,将会有很多这样的事情要做,我很高兴依次写下每一条规则
我希望这是有道理的
提前谢谢。我想还有很多事情要做,不仅仅是修改 您首先需要实现以下目标:
- 允许将每个类别和产品的URL部分存储在数据库中的某个位置(可能基于语言)
- 通过将每个类别的这些URL部分连接到具体的产品,显示产品的URL
- 假设产品链接到的类别的关键字为
,该产品的关键字为TRADITIONAL-BRIDGE-SINK-MIXER
1901 TRADITIONAL-BRIDGE-SINK-MIXER NDSMC
- 然后您可以生成此URL:
/store/browse/category/TRADITIONAL-BRIDGE-SINK-MIXER/product details/1901 TRADITIONAL-BRIDGE-SINK-MIXER NDSMC
- 假设产品链接到的类别的关键字为
- 然后在.htaccess中,您将有如下内容:
RewriteCond%{REQUEST\u FILENAME}-F
重写规则^store\/browse\/category\/(.*)\/product details\/(.*)$product.php?category\u id=$1&product\u id=$2[QSA,L]
对于类别也一样,比如对于URL/store/browse/category/SINK-MIXER/TRADITIONAL-BRIDGE-SINK-MIXER/1901 TRADITIONAL BRIDGE-SINK-MIXER NDSMC
,您将有如下规则:
RewriteCond%{REQUEST\u FILENAME}-F
重写规则^store\/browse\/category\/(.*)\/(.*)\/(.*)$categories.php?categoriy1\u id=$1和categoriy2\u id=$2和categoriy3\u id=$3[QSA,L]
这不是一个解决方案,这只是一个起点…您的意思是希望在内部重写url时保留get参数?看看
QSA
标志。在某种意义上不保留参数,但是?cat1=1&cat2=2&cat3=58&cat4=96将进入一个页面,而?cat1=1&cat2=2&cat3=58&cat4=92将进入另一个页面。我希望这是一件相当简单的事情。我不储存的细节,因为这些链接来自一个旧的网站,所有我试图做的是维护链接。我尝试了301,但在使用参数时它会中断。如果是这种情况,我会创建一些输入脚本,使用mod_rewrite将任何/store/browse/category/*
URL发送到该输入脚本(比如old_URL\u redirect.php
),该脚本将解析该旧URL,获取所需的数据块,找到新的URL并将用户重定向到新的URL…愿上帝与你同在!嗯,我很乐意这么做。好主意。不幸的是,我不能,因为系统使用404错误从索引页重定向和建立整个网站。