これが長すぎる場合は事前にお詫びします。別名でルールを書き換えるにはどうすればよいですか?
私は自分のラップトップでローカルデベロッパーにWAMPを使用していて、それぞれがプロジェクト作業ディレクトリを指しているさまざまなc:/wamp/alias/*
ファイルを持っています。私はいくつかの優れたmod_rewriteの助けを持っていたし、SEOに優しいと短いの両方であるURLのlocalhost/.../index.php/sub/dir
にlocalhost/.../ih/sub/dir
を変更するために動作するように
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\/)?ih(\/.*)?$ $1index.php$2 [L,QSA]
を得ています。 [私はこれを行うにはまだ行っていないが、うまくいくと思う。]しかし、すべて一緒にするためには、私は本当にむしろやっていないだろう
c:/wamp/www/
から
c:/
に私のドキュメントルートを変更しなければならなかった私のApacheがハッキングされたり、そうでなければそれが厄介であるからです。
私のテストエイリアスファイルには、次のようになります
Alias /testme "c:/var/tmp/wamp-testme/"
<Directory "c:/var/tmp/wamp-testme/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*\/)?ih(\/.*)?$ $1index.php$2 [L,QSA]
</Directory>
とhttp://localhost/testme/rewrites/ih/sub/path
をロードしようとしたときに私が手にエラーがブラウザで一致
Not Found
The requested URL /var/tmp/wamp-testme/rewrites/index.php/sub/path
was not found on this server.
と
[Thu Jun 30 06:46:13 2011] [error] [client 127.0.0.1]
File does not exist: C:/wamp/www/var
です。確かに、私のc:/wamp/alias/flying.conf
ファイルの同じ設定がc:/data/flying/
ディレクトリを指していると、エラーログファイルにFile does not exist: C:/wamp/www/data
がスローされます。
Sooooo ...私のマシンのルートディレクトリにdocルートを持たずにエイリアスを超越する書き換えルールをどうやって作ることができますか?
提案していただきありがとうございます。私の書き換えルールを 'RewriteRule ^(。* \ /)?ih(\ /.*)?$ $ 1index.php $ 2 [L、QSA、PT]'として書き直しても、私には同じエラーが表示されます:-( –
HmmあなたはRewriteBaseを追加しようとすることができます:正直なところ、Aliasディレクティブとのやりとりの仕方はわかりませんが、404エラーは、書き換えられたURLがあなたのApacheルートに相対的であると仮定している可能性があります。 – Femi
私は 'httpd.conf'ファイルにルールを書き込もうとしましたが、' RewriteBase '/ ''または 'RewriteBase/testme /' 'をエイリアスファイルは動作しませんでしたので、すべてのエイリアスファイルにルールが付いています。次に、これを '.htaccess'ファイルを介して取得する必要があるかどうかは分かりません。私のプロダクションサーバ上で 'httpd.conf'を使うと、あるいは...エイリアスを持っていないので、このような複雑さはまったくありません:-) [私は仮想ホストを持っています。より多くの実験的...]もう一度ありがとう! –