0

タイトルがわかりにくい場合は申し訳ありません。

ローカルマシンに仮想ホストを設定しました。フォルダhttp://devにマップするように設定しました。dnsmasq.htaccess/htdocs/devの助けを借りて、のサブドメインを内のフォルダーにマップするように設定しました。そして、たとえば、またはにアクセスしようとすると、すべて完璧に機能します。この問題は、サブフォルダーへのアクセスで発生します。またはにアクセスしようとすると、が表示されます。.dev/htdocs/devhttp://dev/file1.htmlhttp://folder.dev/file2.html404 Object not foundhttp://folder.dev/subfolder/http://folder.dev/subfolder/file3.html

.htaccessで解決できると思いますが、やってみましたが失敗しました。これが私のように/htdocs/dev/.htaccess見えます:

# Default index file
  DirectoryIndex index.php

# Interpret .html files as .php scripts
  AddHandler php5-script .php .html

# Redirect subdomains to their respective folders
  RewriteEngine on
  RewriteBase /

  RewriteCond %{HTTP_HOST} !^www\.dev$ [NC]
  RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.dev$ [NC]
    RewriteRule !^([a-z0-9-]+)($|/) /%2%{REQUEST_URI} [PT,L]

ちなみに、アクセスしようhttp://dev/folder/subfolder/file3.htmlとしても問題ありません。

http://folder.dev/subfolder/ポイントなどのアドレスを設定するにはどうすればよい/htdocs/dev/folder/subfolderですか?

4

2 に答える 2

0

ルールを次のように変更してみてください。

RewriteCond %{HTTP_HOST} !^www\.dev$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.dev$ [NC]
RewriteCond %{DOCUMENT_ROOT}/%2{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}/%2{REQUEST_URI} -d
RewriteRule ^ /%2%{REQUEST_URI} [PT,L]
于 2012-09-22T17:52:06.887 に答える
0

まず、これについてのヒントをくれた@JonLinに感謝します。

私はこの.htaccessファイルでこれを解決することができました:

# Ordered list of index files, if none exist, show directory listing
  DirectoryIndex index.php index.html

# Interpret .html files as .php scripts
  AddHandler php5-script .php .html

# Redirect subdirectories to their respective folders
  RewriteEngine on
  Options +FollowSymlinks
  RewriteBase /

  RewriteCond %{HTTP_HOST} !^www\.dev$ [NC]
  RewriteCond %{HTTP_HOST} ^(www\.)?(.*)\.dev(.*)?$ [NC]
  RewriteRule !^%2\.dev%3?/$ http://dev/%2%{REQUEST_URI}/ [P]

これのリライト部分は、http://folder.dev/subfolderの形式のURLを取得し、URLを保持しながら/ dev / folder/subfolderを指すようにします。wwwの有無にかかわらず動作します。

于 2012-09-22T21:14:01.137 に答える