1

(非常によく似た質問がありますが、どれも解決しませんでした)

  1. 私のドメインは www.abc.com です。これは自動的に /public_html にマップされます (私のホスティング会社が作成したもので、管理パネルでは変更できません)。
  2. 私のcms drupal7.15はフォルダー public_html/foo/drupal715/ にあります

大きな疑問: なぜ: www.abc.com を開くと、URL は www.abc.com/foo/drupal715/index.php の ように見えます。同じはずです! しかし、私が drupal で作成した他のリンクやページは機能しています (例: www.abc.com/myproject)。

私の構成を見てください

次のようなルート (public_html) に最初の .htaccess があります。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.abc.com$ [OR]
RewriteCond %{HTTP_HOST} ^abc.ch$ [OR]
RewriteRule ^(.*)$ /foo/drupal715/$1 [PT,L,QSA]

これはサブディレクトリにリダイレクトされますが、メインの URL を開いたときに URL にフォルダが表示されるのはなぜですか?

助けてください!私はしようとするのにとてもうんざりしています。

ここで、drupal ルートの htaccess の興味深い部分を示します。

 # Modify the RewriteBase if you are using Drupal in a subdirectory or in a
  # VirtualDocumentRoot and the rewrite rules are not working properly.
  # For example if your site is at http://example.com/drupal uncomment and
  # modify the following line
  #RewriteBase /foo/drupal715
  #
  # If your site is running in a VirtualDocumentRoot at http://example.com/,
  # uncomment the following line:
  RewriteBase /

  # Pass all requests not referring directly to files in the filesystem to
  # index.php. Clean URLs are handled in drupal_environment_initialize().
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} ^/foo/drupal715/(.*)$
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,B]
  #RewriteRule ^ index.php [L]

よろしくお願いします

4

1 に答える 1

2

mod_rewrite の仕組みはドキュメントで説明されており、ここでも何度も議論されています。
サーバー上で機能しますが、変更された URL をクライアントに返すことはありません(これを行うためのルールを特に作成しない限り)。これにより、「ユーザーフレンドリーな URL」を作成して使用できるようになります。サイトが 1 つのページ/フォルダーから別のページ/フォルダーにリダイレクトされる場合は、実際に何が要求され、実際に何を行っているかを確認することをお勧めします。たとえば、あなたの index.php を見てください

于 2012-09-06T07:55:18.880 に答える