2011-01-06 8 views
0

たとえば、次のようなURIリクエストをルーティングできるようなApacheリライトルールを作成しようとしています。私は、私のindex.phpにどこでも、相対ファイルパスを使用しておりますのでApacheリライトルールを使用しているときの相対ファイルパスの問題

RewriteRule ^/?([a-zA-Z_]+)/([a-zA-Z0-9_]+).html$ index.php?site=$1&page=$2 [L]
RewriteRule ^/?([a-zA-Z_]+)/([a-zA-Z0-9_]+)$ index.php?site=$1&page=$2 [L]

http://mydomain.com/articles/example私がこれまで持っていることはこれです

http://mydomain.com/index.php?site=articles&page=example


へスタイルシート、スクリプト、イメージなど、私は間違って解決された絶対ファイルパスの問題に直面している。私は根、 http://mydomain.com/または http://mydomain.com/articlesにいるとき、すべての相対イメージパスが正しく解決たとえば

からimages/logo.jpgは、それぞれhttp://mydomain.com/images/logo.jpgまたはhtdocs/mydomain/images/logo.jpgになります。

サイト上の自分のリンクの1つをクリックすると、 http://mydomain.com/articles/example、Apache(またはブラウザ?)は、すべての画像がここにあると仮定しますhttp://mydomain.com/articles/images/ - このパスが実際には存在しないことはかなり明白です。だからここ

は私の質問です:

1.は、それが絶対的なものにすべての私の相対ファイルパスを変更するせずにこの問題を解決することは可能ですか?

私のドメインが有効にリンクされているので、実際のWebサーバー上のすべてのパスにroot /を使用できます。
mydomain.comは私のWebサーバー上の/html/mydomainにリンクされている - /mydomain.com/に解決されますが、私の個人的なコンピュータ上で私はXAMPPを実行していると/htdocs/に解決 - 私はhtdocs

のいくつかの部位を保持するので、それはしかし、単にhtdocs/mydomain/に解決する必要がありますindex.phpだけでなく、スタイルシートやスクリプトも同様にパスの宣言を自動体系的に置き換える必要があるため、index.phpを私のWebサーバに更新すると、絶対ファイルパスはひどいものになります。

2.私のパーソナルコンピュータに静的DNSエントリを作成して、自分のWebサーバーに適合させる必要がありますか?

最も一般的な方法は何ですか?

ありがとうございます!

は誠意をこめて、セバスチャン

答えて

1

は、私はWindowsのhostsファイルとApacheのhttpd-vhosts.confファイルを編集して、自分でそれを考え出しました。

1。%ApacheInstallDir%\conf\extra\httpd-vhosts.conf

<Directory "E:\htdocs">


Order Deny,Allow
Allow from all
</Directory>
から%SystemRoot%\system32\drivers\etc\hosts

127.0.0.1 www.mydomain.local

新しい仮想ホスト・エントリをアペンドする新しい静的DNSエントリを追加します
NameVirtualHost 127.0.0.1

<VirtualHost 127.0.0.1>
DocumentRoot "E:\htdocs"
ServerName localhost
</VirtualHost>

<VirtualHost 127.0.0.1>
DocumentRoot "E:\htdocs\mydomain"
ServerName www.mydomain.local
</VirtualHost>

http://www.mydomain.localは、例えば、単に彼らの前に/でそれらを「応援」で私のindex.php内のすべての相対パスやリンクを変更するhtdocs/mydomain直接

につながります<img src="/images/logo.jpg" />

私はDreamweaverでサイトを設定することもできたので、デザインとライブビューを正しく使用することができました。

関連する問題