htaccess中重写模块的问题

时间:2013-11-04 14:34:30

标签: .htaccess

处理本地设置。在重写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 

1 个答案:

答案 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]

我建议您提供问题中的所有输入网址。