0

ローカルセットアップに取り組んでいます。見栄えを良くするために URL を書き換えているときにこの問題が見つかりました

Project /index.php?departmentId=1 to
Project/deptname-d1

そして、それは関連するカテゴリをtat部門に表示します ひねりは、カテゴリの1つが選択されたときにサーバーがオブジェクトをスローします 選択されたURLがサーバー上で見つかりませんでした 参照ページのリンクが間違っているか、古くなっているようです 書き換える前のURLは

Project/index.php?departmentId=1&CategoryId=2

必要な URL の形式は Project /deptname-d1/catname-c2 です htacess の正規表現は次のようなものです Options +FollowSymLinks RewriteEngine on RewriteBase /project RewriteCond %{THE_REQUEST} ^GET.*/index.(php|html?)\ HTTP RewriteRule ^(. )index.(php|html?)$ $1 [R=301,L] #部門のルールを書き換える RewriteRule ^. ?-d([0-9]+)/page-([0-9]+)/?$ index.php? DepartmentId=$1&Page=$2[L] RewriteRule ^. ?-d([0-9]+)/?$ index.php?DepartmentId=$1[L] #カテゴリ RewriteRule のルール ^. -d([0-9]+)/^. -c([0-9]+)/page-([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2&Page=$3[L] RewriteRule ^. -d([0-9]+)/^.c([0-9]+)/?$ index.php?DepartmentId=$1&CategoryId=$2 [L] #商品の書き換えルール Rewriterule ^. ?-p([0-9]+)/?$ index.php?productId=$1

書き換え前の URL は、フロント ページ localhost/project/index.php?DepartmentId=x の場合は localhost/project/ でした。 php?DepartmentId=x&CategoryId=y カテゴリ フロント ページ localhost/project/index.php?DepartmentId=xCategoryId=y&カテゴリページの場合は page=z localhost /project/ProductId=Q これらは、次の形式で書き換えられる入力 URL です フロントページの場合は localhost/project/ 部門のフロントページの場合は localhost/project/department-name-dx/ project/部署名-dx/page-z/ 部門ページの場合 localhost/project/部署名-dx/カテゴリ名-cy/ カテゴリフロントの場合 localhost/project/部署名-dx/カテゴリ名-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 
4

1 に答える 1

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]

質問にすべての入力 URL を提供することをお勧めします。

于 2013-11-04T14:51:31.553 に答える