2017-12-27 34 views
0

誰かが私を助けてくれることを願っています。私はajaxを使用してサイトを作成しました。誰かがwww.example.com/example1.htmlにアクセスしてリダイレクトする場合は www.example.com/#items/example1.html多くのHTMLファイルのURLの冒頭に/#itemsにリダイレクトする必要があります。いいえCSS & JSはHTMLファイルにあります)なぜなら私はajax呼び出しのためだけにHTMLファイルを作成しており、より良いユーザーエクスペリエンスのために直接URLアクセスを防ぎたいからです。 .htaccessファイルを使用してこのようなリダイレクトを取得する方法を知っている人がいるかもしれません。.htaccess直接ファイルアクセスのURLに#itemでサイトを書き換えます。

編集 私はこれを成功させずに前に試しました。私は正直に言うと、このリダイレクトを行う方法がわからない:)

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f 
RewriteRule ^(.*)$ /#items/$1.html 
+0

あなたはあなたの問題を解決しようとしたと具体的にどのような問題、あなたとしていた方法を提示してください試みる。あなたはhtaccessのリダイレクトが必要であることを知っているので、ここで尋ねる前に自分でやってみるべきです。 –

+0

ありがとう、私は今私の質問を編集し、私が作業しようとしたコードを追加しました。私は正直言って、このリダイレクトを行う方法を知らない:) – Cody

答えて

0

使用RewriteRule directive

RewriteRule ^(.*).html$ /#items/$1.html [NE,R=301,L] 
+0

ありがとうが、どのようにすべてのHTML項目のリダイレクトを取得するには?私は自分の質問を編集して、私が働こうとしたコードスニペットを表示しました。可能であれば、すべての '.html'ファイルを一度にリダイレクトしようとします。このリダイレクトを必要とする多くの '.html'ファイルが存在するためです。 – Cody

+0

を編集したばかりの場合、RewriteRuleフラグ(https://httpd.apache.org/docs/2.4/rewrite/flags.html)、エスケープがない場合は[NE](リライトの場合は#がエスケープされます)、[R = 301 ]リダイレクト永久に – Ben

+0

ありがとうが、あなたのコードを実装した後、それは私のサイト上ですべてのAjax呼び出しを壊し、多くのエラーを伴うループロードになりました。直接URLが取得された場合はif文のようなオプションがあり、まだアクセスされていない場合はURLに '/#items'を追加してください。そうでない場合は無限になりませんajax呼び出しでループします。 – Cody