0

元の URLを取得します: www.mydomain.com/menu/?myid=29&mypage=pizza-hut.html

次の mod_rewrite コードを使用します。

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^menu/([^/]*)/([^/]*)\.html$ /menu/?pid=$1&alias=$2 [L]

次の素敵な URL を取得します: www.mydomain.com/menu/29/pizza-hut.html

したがって、上記の両方の URL は同じページを参照しています...そうです! 今、本当の取引は、

元の URL を入力すると、なぜ:

www.mydomain.com/menu/?myid=29&mypage=pizza-hut.html

にリダイレクトしません

www.mydomain.com/menu/29/pizza-hut.html

アドレスバーに元のものが保持されますが、追加する必要がある行はありますか?

4

2 に答える 2

0
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /menu/?\?myid=([^&]+)&mypage=([^&\ ]+) 
RewriteRule ^menu/?$ /menu/%1/%2.\html? [R=301,L]

?次のことに注意してください.\html

于 2012-08-02T04:33:07.893 に答える
0

基本的に、生成するすべてのリンクはナイス URL にする必要があります。/menu/?myid=29&mypage=pizza-hut.htmlあなたのページのようなリンクを持たないでください。次のように、バックエンドで正しくルーティングされることを確認したクリーンな URL を使用します。www.mydomain.com/menu/29/pizza-hut.html

サーバー上のルールは、見栄えの良い URL をコンテンツが理解できるものに書き換えます (例: /menu/?myid=29&mypage=pizza-hut.html)。それが最も重要な部分です。醜い URL に対するすべての直接要求を修正したい場合は、最初にすべてのページが見栄えの良いページを使用し始めることを確認する必要があります。その後、次のようにすることができます。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /menu/?\?myid=([^&]+)&mypage=([^&\ ]+)
RewriteRule ^menu/?$ /menu/%1/%2? [R=301,L]
于 2012-08-01T10:01:24.887 に答える