2016-04-14 7 views
1

私のサイトはPHPとJS AJAXの両方を使用していますので、私はそれらにかなり精通しています。このページ構造では、すべてのユーザーが1つのランディングPHPページにとどまり、URLページのp変数に応じて適切なコンテンツを取得します。HTML URL変数、PHPまたはJSソリューションなし

http://www.example.com/?p=about 
http://www.example.com/?p=aMap-anothermap-evenAnothermap-lastelyTheFile 

このページ構造は、私はちょうど全体?p=home削除リンクを作成するための正しい方法を知らないことを除いて私のために素晴らしい作品。私は自分のホーム/スタートページを自由に変えたいからです。私はそれが

http://www.example.com/ 

ではなく

http://www.example.com/?p=home 

になりたい今私はちょうどリンク

http://www.example.com/? 

を作ることができそして、ちょうどJS pushState()?を削除し、それが見えますかなり愚かで、JSユーザのためだけに働くだろう。

ここで、上記の例を?としたいとします。このようなリンクを作成することができます。

<a href="?">Link</a> 
<script src="SomeCoolPushStateScript"></script> 

そして、私はこれも動作しないことを経験から知っている:HTML hrefを使用するとき、どのように私はURLの?variable=something一部を削除するには:

<a href="">Link</a> 

だからここに質問が来ますか?

答えて

2

パス./はこのトリックを行う必要があります。

<a href="./">Link</a> 

あなたはindex.phpのように、メインスクリプト名を保持したい場合は、その名前を含める必要があります。

<a href="index.php">Link</a> 

また、PHPでドメイン相対または絶対URLを動的に生成することもできます。

+1

OPの特定の質問については、私は 'href ="/"'と思っていて、 'href =" www.example.com/ "でさえもうまくいくでしょう。 –

+1

@Andrew 2番目のものには '//'、 'http://'、 'https://'を追加する必要がありますが、サイトのルートにあると仮定します。 –

+0

Link」は私にとってそれをしました、ありがとう! –

1

クエリーストリングを使用する必要はありません。

<a href="/">Link</a> 

は、example.comのルートに行きます。

"./"を使用することはお勧めできません。これは、ユーザーがウェブサイトのルートディレクトリにあるページ(例:http://www.example.com/page.html)にいる場合に必要な操作を行います。しかし、これはサブディレクトリのページ上にあった場合には機能しません。例えば。ユーザーがhttp://www.example.com/hello/page.htmlにいる場合は、http://www.example.com/hello/にリンクするだけです。

"/"を使用すると、ユーザーはあなたのウェブサイトのルートに移動します。

+0

ああ、試してみましたが動作しませんでしたが、おそらく自分のウェブサイトが現在Apacheのテストサーバーのルートにないためです。 –

+0

URLの変数=値の拡張子はクエリ文字列と呼ばれていますか? –

+2

@JohanSundman私はPunitに答えて、yesと答えます。これはクエリ文字列です。 –

関連する問題