0

.htaccessで書き換える方法

?p_action=user_profile to /user

「?」を無視しているようです。キャラが分からなくてどうしたらいいのか……。

ありがとう

いくつかの詳細:(私の質問は今拡大しています... :P)

www.example.com/?p_action=user_profile&post_author=34 ブラウザに「醜い」または「良い」URLを入力すると、ブラウザに表示www.example.com/nice_url されます。

つまり、入力した場合はwww.example.com/nice_urlurl_rewrite を実行し、www.example.com/?p_action=user_profile&post_author=34 と入力した場合は にリダイレクトしwww.example.comます。

問題: うなずいて「?」を書き直すことができました。マークですが、(幸いなことに)克服しました。

今、これは私が持っているコードです:

RewriteRule ^nice_url$  ?p_action=user_profile&post_author=34 [L]       

RewriteCond %{QUERY_STRING}  p_action=user_profile&post_author=34
RewriteRule (.*)  http://www.example.co.il/nice_url?    [R=301,L]

ただし、これによりループが作成されます...

これを追加してみました

RewriteCond %{ENV:REDIRECT_STATUS} 200 #looks if there was a redirect
RewriteRule .* - [L]

しかし、それは役に立ちませんでした。これは、私がWordpressを使用していて、すでにいくつかのリダイレクトがあるためだと思います...

助けてください。ブラウザに常に「www.example.com/nice_url」が表示されるようにするにはどうすればよいですか?

ありがとう!

4

1 に答える 1

1

リダイレクト ステータス条件をルールに直接追加します。

RewriteRule ^nice_url$  ?p_action=user_profile&post_author=34 [L]

RewriteCond %{ENV:REDIRECT_STATUS} !=200
RewriteCond %{QUERY_STRING}  p_action=user_profile&post_author=34
RewriteRule .*  http://www.example.co.il/nice_url?    [R=301,L]

これにより、他の WordPress ルールが台無しになることも防止できます。

于 2013-08-25T20:59:53.637 に答える