2016-10-04 13 views
4

たとえば、www.mysite.comにアクセスしたときに.htmlファイルを非表示にすると、www.mysite.com/index.htmlにリダイレクトされますが、www.mysiteのままになるように/hindex.htmlは非表示になります。 comですが、実際はwww.mysite.com/index.htmlです。 私は説明する方法を本当に知っていませんが、あなたが理解できれば、助けてください、ありがとう。Apacheでルーティングを設定するにはどうすればよいですか?

+0

すべてのURLから.htmlを削除します。連絡先のページはwww.mysite.com/contact.htmlの代わりにwww.mysite.com/contactにする必要がありますか? –

+0

これは実際にはjavascriptの問題ではありません。 ApacheのURL書き換えに注目してください。 –

+0

@RahulPatelはいthats正しい、どうすればいい? – meme

答えて

0

これを試してください。ここではディレクトリインデックスを設定していますので、すべての呼び出しでindex.htmlを記述する必要はありません。拡張せずにすべてのhtmlを書き直す。

DirectoryIndex index.html 

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule ^([\w-]+)$ $1.html [L] 
3

.htaccessファイルは、メモ帳やテキストメイトなどのテキストエディタで作成するシンプルなASCIIファイルです。これは、ディレクトリ単位で構成を変更する方法を提供します。

RewriteRule ^([^\.]+)$ $1.html [NC,L]

ソース - How to remove .php, .html, .htm extensions with .htaccess

+0

助けてくれてありがとう: – meme

3

あなたの.htaccessファイル内のコードの下に記述してください。

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

上記のコードを使用してURLから.htmlが削除されます。 ご連絡先のページのURLがwww.mysite.com/contact.htmlであるとします。上記のコードを使用すると、代わりにwww.mysite.com/contactとなります。

+1

ありがとう、たくさんの人に本当に感謝します:) – meme

+0

私はあなたを助けることができて本当にうれしいです。 (y) –

0

この方法ではApacheは使用しません。コードを再構築するだけです。

また、ルートに別のディレクトリを作成してみることもできます。 連絡先ページのように、プロジェクトのルートディレクトリにフォルダ名の連絡先があります。そのフォルダの中にcontact.htmlをindex.htmlとして配置します。 この再構成は、ルートごとにコードを分割するのに役立ちます。

連絡先ページへのリンクは、www.mysite.com/contact(ブラウザはwww.mysite.com/contact/index.html)になります。

0

インデックスページでクライアント側のURLテキストを編集するよう依頼している場合は、あなたはthis answerからのコードをHTMLファイルにJavaScriptでパス名を置き換えることができます:

history.replaceState('data to be passed', 'Title of the page', 'theNameWithoutTheHTML'); 

名は、各ページのそれぞれの.jsのために変更しなければならない、またはあなたがより一般的なスクリプトを使用して、それを再利用することができます

history.replaceState('data to be passed', 'Title of the page', location.pathname.slice(0, -5)); //This will replace it with the same path, removing the ".html" at the end (take care if the extension is different sized) 

この場合、.htmlファイルにリダイレクトしているので、ユーザーがページを再読み込みしても問題ありません(.htmlなしでページを読み込もうとします)。

関連する問題