web-dev-qa-db-ja.com

XAMPPエイリアスまたは書き換え?

XAMPPを使用してW2012で実行しているサイトがあります。サブフォルダー/ fooにあるライブサイトがあります。ここで/ homeに変更する必要があります。

I set up an alias 

Alias /foo "C:/xampp/htdocs/home"

これにより、ユーザーはfoo-> home ...に移動しますが、ユーザーは目的のページを失います。問題は、fooの多くのページが個人的に提供されているため、ユーザーが新しいURLにページをコピーする必要があることをユーザーに理解してもらうことです。 foo/client-demoに移動して、home/client-demoに自動的に移動するユーザーが必要です。

追加:昨日、リダイレクトを設定しました。

Redirect foo/client-demo home/client-demo

これは動作します。それから、エイリアスが機能しない理由は私のSSOだと思いました。ユーザーにエントリページをリダイレクトするSSO SAMLログインスクリプトがあります。そのため、ユーザーがfoo/xyzで開始すると、エイリアスによってhome/xyz(xyzにある可能性があります)にキックされ、ログインスクリプトにアクセスして紹介ページに戻ります。

2
blankip

...しかし、彼らはしようとしていたページを失います。

これが何を意味するのかわかりません-彼らは何も「失う」べきではありませんか?ただし、アドレスバーのURLは更新されません-それがあなたが暗示しているものであるなら? Apache Aliasは、URLをサーバー側のファイルシステムパスに変換します(通常、ドキュメントルートの外部にあるファイルへのアクセスを許可するため)-URLを操作しません。

外部リダイレクト(301-パーマネント)が必要なようです。たとえば、mod_alias(プレフィックスマッチング)を使用する場合:

Redirect 301 /foo /home

これは、mod_rewriteを使用してリダイレクト/リライト(WordPressなど)を処理していないことを前提としています。すでにこの目的でmod_rewriteを使用している場合は、実行の順序が期待どおりでない可能性があるため、このリダイレクトにもmod_rewriteを使用する必要があります。例えば:

RewriteRule ^/?foo(.*) /home$1 [R=301,L]
1
DocRoot