0

私はこれらの2つのルールを持っています:

RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301]
RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301]

問題は、カテゴリが機能し、機能しないことです。作品:

 http://apps.com/iphone/categories

動作しません:

 http://apps.com/iphone/featured

機能しない 2 番目のルールにより、ここに移動します

 http://apps.com/var/www/vhosts/apps.com/httpdocs/iphone/home.php?featurez=1

私のディレクトリのルートのルートを私に送っているようで、そのすべてが私のサイトのルートの前に付けられています..なぜですか?

そんなことがあるものか。

4

1 に答える 1

1
  1. 書き換え条件は直後のルールにのみ適用されるため、条件は「機能」ルールにはまったく適用されません。複製する必要があります。
  2. Apacheは、ルールのターゲットがURLパスであるかファイルパスであるかを推測しようとしますが、推測が正しくありません。リライトベースを含めるか、ターゲットを絶対URLパスにすることで、修正を試みることができます。

これらの解決策のいずれかを使用すると、リダイレクトに表示されるファイルパスが修正されます。

RewriteBase /iphone/
RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^categories$ home.php?categories=1[L,NC,PT,R=301]
RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^featured$ home.php?featurez=1 [L,NC,PT,R=301]

また

RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^categories$ /iphone/home.php?categories=1[L,NC,PT,R=301]
RewriteCond %{HTTP_USER_AGENT} iPhone [NC]
RewriteRule ^featured$ /iphone/home.php?featurez=1 [L,NC,PT,R=301]
于 2012-11-11T08:47:35.033 に答える