1

現在、以下の正規表現を使用しています

RewriteRule ^(love-wallpaper.php|quotes-wallpaper.php)+ wallpapers.php

書き直すことlove-wallpaper.phpquotes-wallpaper.phpwallpapers.php

上記のルールは間違った URL を書き換えてはいけませんlove-wallpaper.php&anything
が、URL を次のようlove-wallpaper.php?anythingに書き換えるべきです。wallpapers.php

これはどのように行うことができますか?

例 : URL
likelove-wallpaper.php#asdfasdfasdfはに書き換えるべきではありませんwallpapers.php
が、url likeは Thankslove-wallpaper.php?aasdbfsbdfにリダイレクトする必要がありますwallpapers.php

4

2 に答える 2

1

It's not very clear to me what you are looking for, But If you want to match for a valid query string after quotes-wallpaper.php use below rule

RewriteRule ^(love-wallpaper.php|quotes-wallpaper.php)+(?![\w&#\$!\(\)]+) wallpapers.php

It will not match &,#,$ etc after wallpaper.php.You can put more symbols in regex character class[] if you don't want them to match and rewrite and vice-versa.

Note: This will entirely ignore any query string in passed in url.

于 2013-02-05T08:08:11.593 に答える
1

あなたはおそらく次のものを探しています:

RewriteRule ^(love|quotes)\-wallpaper\.php$ wallpapers.php [QSA]

-正規表現で予約されているため、文字もエスケープしました。

正規表現/htaccess の説明:

  • ^- 「から始まる」
  • (love|quotes)- 文字列「love」または文字列「quotes」
  • \-wallpaper\.php- 文字列「-wallpaper.php」を-エスケープ.します。
  • $-「終わりはここにあるに違いない」
  • [QSA]url.php?my=parameterURL パラメータ ( ) をページに送信しますwallpapers.php

url.php#hashURL ハッシュはサーバーに送信されないため、.htaccess マッチングでは使用できないため、一致しないことを決定することはできません。.htaccess ファイルを使用してハッシュで URL をリダイレクトするを参照してください。

于 2013-02-05T09:13:24.033 に答える