2012-02-15 7 views
0

を使用してURLに追加の単語を追加することができます。どのように私はこのようなURLでアプリケーションを持っているのmod_rewrite

https://www.domain.com/example/public/subscription 
https://www.domain.com/example/public/subscription/source 
https://www.domain.com/example/public/test/subscription 

私は短い「エイリアスを作成するために、mod_rewriteの(またはいくつかの他の方法)を使用したいです「/public/一部を除去することにより、上記URLの私は、URLのこれらの短いバージョンで私のクライアントを提供できるように:

https://www.domain.com/example/subscription 
https://www.domain.com/example/subscription/source 
https://www.domain.com/example/test/subscription 

を言い換えれば、https://www.domain.com/example/subscriptionに閲覧したときに、例えば:

直接
  • は、ブラウザがまだ
  • がされているアドレスバーに(/public/なし)URLの短縮バージョンを表示しなければなりませんhttps://www.domain.com/example/public/subscriptionを開くときに

    • サーバーは1つが得るであろうと同じ応答を返送しなければなりませんこれは可能ですし、そのようなRewriteRuleはどのように見えますか?

      ありがとうございます。

    答えて

    2

    DocumentRoot.htaccessというファイルを入れてください。

    +0

    は、この書き換えルールを試してみてください。このウェブサイトのDocumentRootは/ var/www/domain/exampleで、私の.htaccessファイルはexample /ディレクトリにあります。今は、次のような簡単なルールはありません: 'RewriteRule^/(。*)http://www.google.com [R]'。これにより、https:// www.domain.com/example/public/test/subscriptionのリクエストがGoogleにリダイレクトされるはずです。代わりに、私は404を取得しています。 – Xhantar

    +0

    @Xhantar 'DocumentRoot'が'/var/www/domain/example'の場合、あなたのURLは 'https://www.domain.com/public/test/ 'https:// www.domain.com/example/public/test/subscription'ではありません。あなたの 'httpd'サーバがアクセスしようとしている' https:// www.domain.com/example/public/test/subscription'の '/ var/www/domain/example // example/public/test /サブスクリプション '。 – ThinkingMonkey

    +0

    @ThinkinMonkey - ああ、私のエラーが表示されます。実際のRewriteRuleでは正しいルートになっていましたが、DocumentRootが設定されたパス、その結果のベースURL、および.htaccessファイルの物理的な位置は、私が完全に把握していなかったすべての要素でした。今解決して働く。どうもありがとうございました! – Xhantar

    -1

    publicのキーワードを「削除する」だけですか?私はここに何か他のものが欠けていると思う

    RewriteRule ^/example/public/(.*) /example/$1 [L] 
    
    +0

    それ以外のところでは、実際に(自分自身を混乱させない限り)。クライアントに短いURLを提供し、/ public/partを追加したい場合は、/ public /を付けずにURLを呼び出すときにアプリケーションが404 Not Foundエラーで応答するので、(書き換えルールがないと仮定して)。 – Xhantar

    関連する問題