web-dev-qa-db-ja.com

ルートフォルダ外のフォルダとURL書き換え

次のシナリオは可能ですか?それを共有ホスティング環境でアーカイブするにはどうすればよいですか?

私はWordpressインストールがあり、たとえば、

/httpdocs/wordpress

私のドメインはこのフォルダを指しています。だから

http://example.com 

結果はWordpressページになります。次に、2つ目のシステムを追加したいのですが、Wordpressを汚染したくないので、外部に保存したいと思います。このフォルダ。引き続きアクセスできるようにしたい

http://example.com/other-system

のファイルシステムに存在していても

/httpdocs/other-system

ではなく

/httpdocs/wordpress/other-system

それは可能ですか?私は意味がありますか?ありがとう!

1

私はあなたが欲しいものは

Alias /other-system /httpdocs/other-system

エイリアス を参照してください。 .htaccessでは、代わりに次を使用できます

RewriteEngine on
RewriteRule ^/other-system/(.*)  /httpdocs/other-system/$1 [QSA]
2
Andrew Schulman

私の知る限り、.htaccessファイルでRewriteRuleを使用してDocumentRootから移動することはできません。これは、このDocumentRootが常に書き換えられたURLの先頭に追加されるためです。

各アプリをDocumentRootの下の個別のフォルダーに配置することをお勧めします。たとえば、DocRoot/wordpressとDocRoot/otherを使用します。

今あなたがのような素敵なURLが必要な場合

www.example.com => wordpress app

www.example.com/other => the other-system app

また、www.example.com/wordpressのようなURLがwww.example.comにリダイレクトされるようにしたい場合は、.htaccessファイルで次のようなものを使用できます。

RewriteEngine On

RewriteCond %{ENV:REDIRECT_STATUS} !=""
RewriteRule .  -  [L]

RewriteCond %{REQUEST_URI} ^/other/(.*)?$
RewriteRule . - [L]

RewriteBase /
RewriteCond %{REQUEST_URI} ^/wordpress/.*$
RewriteRule ^wordpress/(.*)$ $1 [R=301,L]

RewriteCond %{REQUEST_URI} !^/wordpress/.*$
RewriteRule ^(.*)$ /wordpress/$1 [L]

2番目の書き換えルールは他のアプリと一致し、このパスの最後の書き換えとして設定するだけです。

3回目の書き換えにより、example.com/wordpressからexample.comへの永続的なリダイレクトが行われます。

これで、最初のルールも何もしませんが、リダイレクトが前のパスで何かに設定されている場合、それは停止します。これにより、無限のリダイレクトループが回避されます。

最後の書き換えでは、内部的にすべてがwordpressフォルダーにリダイレクトされます。ブラウザーのURLは、wordpressフォルダーがないままです。

それがあなたのアプリで動作するかどうか知りたいのですが...それがあなたをさらに前進させることを願っています。

0
Zimmi