处理本地设置。在重写URL时发现此问题看起来不错 我有部门,类别和产品清单....当我点击其中一个部门时,网址会从
重写Project /index.php?departmentId=1 to
Project/deptname-d1
它显示与tat部门相关的类别,当选择其中一个类别服务器抛出未找到的对象时,扭曲就是这样 在服务器上找不到所选的URL,引用页面上的链接似乎是错误的或过时的 重写之前的URL将是
Project/index.php?departmentId=1&CategoryId=2
所需的网址格式为 项目/ deptname-d1 / catname-c2 htacess中的正则表达式是这样的 选项+ FollowSymLinks RewriteEngine on RewriteBase / project RewriteCond%{THE_REQUEST} ^ GET。* / index。(php | html?)\ HTTP RewriteRule ^(。)索引。(php | html?)$ $ 1 [R = 301,L] 部门的#rewrite规则 RewriteRule ^。? - d([0-9] +)/ page - ([0-9] +)/?$ index.php? DepartmentID的= $ 1和;页= $ 2 L] RewriteRule ^。? - d([0-9] +)/?$ index.php?DepartmentId = $ 1 [L] #rules类别 RewriteRule ^。 -d([0-9] +)/ ^。 -c([0-9] +)/ page - ([0-9] +)/?$ index.php ?DepartmentID的= $ 1和;类别ID = $ 2及页= $ 3 L] RewriteRule ^。 -d([0-9] +)/ ^。 c([0-9] +)/?$ index.php?DepartmentId = $ 1& CategoryId = $ 2 [L] #rewrite产品规则 Rewriterule ^。? - p([0-9] +)/?$ index.php?productId = $ 1
在重写以下内容之前是网址 localhost / project /首页 localhost / project / index.php?DepartmentId = x为部门首页 localhost / project / index.php?DepartmentId = x& page = zfor department pag localhost / project / index.php?DepartmentId = x& CategoryId = y,用于类别首页 localhost / project / index.php?DepartmentId = xCategoryId = y& page = z类别页面 localhost / project / ProductId = Q. 这些是要以下面的形式重写的输入Urls Localhost / project /首页 localhost / project / department-name-dx /用于部门首页 localhost / project / department-name-dx / page-z /用于部门页面 localhost / project / department-name-dx / category-name-cy /用于类别前端 类别页面的localhost / project / department-name-dx / category-name-cy / page-z
Please note tat department and product related regex are working fine only the category page is acting weird can someone explain wats going wrong
答案 0 :(得分:0)
你的正则表达式错了。您不能将^
放在正则表达式的中间位置。试试这个:
RewriteEngine On
RewriteRule ^.*?-d([0-9]+)/.*?-c([0-9]+)/page-([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2&Page=$3 [L,QSA]
RewriteRule ^.*?-d([0-9]+)/.*?c([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2 [L,QSA]
我建议您提供问题中的所有输入网址。