多くのWeb開発者と同様に、公的に提供されているディレクトリに存在するファイルに対する要求ではない場合、.htaccessを使用して、単一のエントリポイントを介してすべてのトラフィックをドメインに転送するのが好きです。
だからこのようなもの:
RewriteEngine On
# enable symbolic links
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+) index.php [L]
これは、リクエストがcssファイルまたは画像に対するものでない場合、index.phpがリクエストを取得し、何をするかを選択できることを意味します(コンテンツまたはおそらく404を提供します)
うまく機能しますが、解決に役立たないように思われる問題に遭遇しました。
私のドキュメントルートは次のようになります。
asymboliclink -> /somewhere/else
css
.htaccess
img
includes
index.php
それでも、Apacheはディレクトリへのシンボリックリンクをディレクトリとは見なしません。ルートのindex.phpにリクエストを渡します。独自のindex.phpを持つフォルダーへのリンクであるため、リンクをフォルダーであるかのように提供したいと思います。ブラウザのアドレスバーに入力することで http://example.com/asymboliclink/index.php にアクセスできますが、 http: //example.com/asymboliclink
これを実現するには、.htaccessファイルに何を追加する必要がありますか?
使用 -l
シンボリックリンクをテストするためのスイッチ
RewriteEngine On
# enable symbolic links
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+) index.php [L]
http://httpd.Apache.org/docs/2.0/mod/mod_rewrite.html --ctrl + f for "TestStringをパス名として扱い、存在するかどうかをテストします。これはシンボリックです。リンク。"
-l
フラグはシンボリックリンクを参照します
RewriteEngine On
# enable symbolic links
Options +FollowSymLinks
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+) index.php [L]