0

I want to use apache rewrite module to do complex rewriting.

For example If the url is http://www.site.com/wall and http://www.site.com/profile and http://www.site.com/info I want to rewrite into http://www.site.com/gotopage.php?page=wall ,or http://www.site.com/gotopage.php?page=profile and so forth

But if the url is other than that I want to pass it the other way For example. if the url is http://www.site.com/newthing then it should rewrite as http://www.site.com/index.php?params=newthing

Please Help. I tried to see other questions but did not get it!

4

1 に答える 1

2
RewriteEngine On
# Special rule for 3 unique cases
RewriteRule /(wall|profile|info)$ /gotopage.php?page=$1 [L]

# Only rewrite if the URL has not yet been rewritten
RewriteCond %{HTTP_URL} (?!gotopage\.php|index\.php)
RewriteRule /([^/]+) /index.php?params=$1 [L]

これが一行一行の説明です:

  1. 指定された3つの単語のいずれかに一致するURLは、に移動するように書き換えられますgotopage.php

  2. この行は次の行の条件です。URLがこの正規表現と一致する場合にのみ、次の行も考慮されます。正規表現は、リクエストがまたはにまだ送信されていないことを確認するためにチェックします。もしそうなら、私たちは何も書き直したくありません(私たちは無限ループになってしまうでしょう)。gotopage.phpindex.php

  3. 要求されたURLに後続のスラッシュがない場合は、に移動するように書き換えますindex.php

于 2012-08-19T03:11:49.360 に答える