1

しようとして、

  <IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteCond %{REQUEST_METHOD} ^TRACE
  RewriteRule .* - [F]
  RewriteCond %{HTTP_HOST} ^(.*)dev\.example\.edu$ [NC]
  RewriteRule ^/test(.*)$ http://dev.example.edu/test/index.php/test$1 [NC]
  </IfModule>

apache 2.2 サーバーで、パスの「index.php/test」部分を非表示にするためにこの書き換えを機能させる。

私が試したことはすべて、アドレスバー内の URL 部分 (index.php/test) をループするか、「リダイレクトが多すぎます」というエラーが発生します。

両側にある方程式の「テスト」部分がそれを捨てていると思われますが、それを機能させる方法がわかりません。

私はちょうどしたい: dev.example.edu/test/index.php/test* に書き換える: dev.example.edu/test/*

ありがとう

4

2 に答える 2

1
于 2009-11-30T23:41:26.970 に答える
0

webmasterworldのジムによる(ありがとう!)

「[P]フラグは、指定されたURLでサーバーへのリバースプロキシ要求を呼び出します。つまり、新しい送信HTTP接続を開き、そのサーバーに要求を送信します。したがって、構成は少なくとも2回です。サーバーは、デフォルトでマップされていないファイルパスからコンテンツを提供するのではなく、HTTP経由で新しいリクエストを送信しているため、元の動作ルールを使用するだけで、必要な速度で動作します。

必要なのは内部の書き換えだけであるように思われるため、URL http://dev.example.edu/distribution/のリソースのリクエストは、サーバーのファイルパス/ distribution/indexのスクリプトによって生成されたコンテンツで処理されます。 .php / distribution / "

RewriteEngine on 
# 
# Return 403-Forbidden response to TRACE requests 
RewriteCond %{REQUEST_METHOD} ^TRACE 
RewriteRule .* - [F] 
# 
# Internally rewrite requests for URL-path /recreation/<anything> 
# to filepath /eel/index.php/recreation/<anything> 
RewriteCond %{HTTP_HOST} ^dev\.example\.edu [NC] 
RewriteRule ^/recreation/(.*)$ /ee1/index.php/recreation/$1 [L] 
# 
# Internally rewrite requests for URL-path /distribution/<anything> 
# to filepath /distribution/index.php/distribution/<anything> 
RewriteCond %{HTTP_HOST} ^dev\.example\.edu [NC] 
RewriteRule ^/distribution/(.*)$ /distribution/index.php/distribution/$1 [L]

ですから、私はそれを必要以上に複雑にしていたと思います。Pフラグを削除し、サーバーアドレス全体をリライターから削除しました。

于 2009-12-01T16:10:30.993 に答える