0

次のルールで2つのディレクトリを削除するにはどうすればよいですか?

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^/subdir/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /subdir/jadehttp.dll?Www_MySite&Action01=$1&H04=$2&cats=$3&states=$4 [L,NC]

現在、フレンドリURLはに正常に出力されhttp://mysite.com/subdir/landingpage/1/packages/vicます。私はそれを次のように見せたい:http://mysite.com/subdir/packages/vic 何かアイデアはありますか?

4

1 に答える 1

0

既存のルールがありますが、これは問題ありません。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^/subdir/([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /subdir/jadehttp.dll?Www_MySite&Action01=$1&H04=$2&cats=$3&states=$4 [L,NC]

次に、これらをそれらの後に追加して、URLで欠落している2つのパスノードを説明します。

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^/subdir/([^/]*)/([^/]*)$ /subdir/jadehttp.dll?Www_MySite&cats=$1&states=$2 [L,NC]

このルールは、のようなURLリクエストを受け取り、http://mysite.com/subdir/packages/vic内部でに書き換え/subdir/jadehttp.dll?Www_MySite&cats=packages&states=vicます。したがって、Action01およびH04パラメーターは失われます。

また、Action01とH04のパラメーターを取得する必要があるが、新しく渡されたURLからは非表示になっている場合、どのようになるかを教えていただけますか?

たとえば、いくつかのデフォルトを埋め込むことができます。

RewriteRule ^/subdir/([^/]*)/([^/]*)$ /subdir/jadehttp.dll?Www_MySite&Action01=FOO&H04=BAR&cats=$1&states=$2 [L,NC]

FOOおよびBARをいくつかのデフォルト値に置き換えます。ただし、URIには抽出するものが他にないため、URIからこれらのパラメーターを取得することはできません。それらがURIの一部でない場合、それらを抽出するものは他にありません。

于 2012-10-19T05:16:37.573 に答える