2017-08-22 10 views
1

何が間違っていますか?なぜ次のファイルは、私のlocalhost上ではなくサーバ側で正しく私のメインディレクトリにある というファイルを開きますか?サーバ側とローカルホスト間で異なる結果を返すRewriteRule

RewriteEngine On 
RewriteRule ^(contact)$ /test\.php?view=$1 [QSA,L] 

サーバー側の結果として、私は表示され、次のページを取得:私はWAMPをを使用していますので、ローカルホスト上example.com/contact を、これは、WAMPをサーバーツリーのようなものを開いています。他のリダイレクトはうまくいきます。

RewriteRule ^index\.html$ /index\.php [QSA,L] 

誰かがこれが起こる原因を知っていますか?

+0

私はネイティブ生まれの英語話者ではないので、英語話者がコンピューティングでこれを使用しているので、foo&barが何を意味するのか分かりません...あなたが言ったのは:RewriteRule^contact /?$/test \ localhost/sitename/contactと入力したときに問題が発生しました – alexis

+1

あなたのルールをこれに変更してください。 : 'RewriteRule ^(連絡先)/?$ test.php?view = $ 1 [QSA、L]'と再テスト – anubhava

+0

魅力のように動作します、どうもありがとうございます。いつ疑問符が左側に置かれるのですか?この場合、それは何を示していますか?私は何をやっているのか理解しているように、あまりにも多くのことを聞いてはいけないと思う。 – alexis

答えて

1
これにあなたのルールを変更し

RewriteRule ^(contact)/?$ test.php?view=$1 [QSA,L,NC] 

と再テスト。

これは、.htaccessが保存されているのと同じディレクトリにcontacttest.phpを書き換えます。あなたのルールは、ターゲットURIの先頭に/があるため、サイトルートのtest.phpに同じリクエストを書き換えています。

/?$パターンでは、要求URIにオプションの末尾のスラッシュを作成します。

+1

Fine!私は/についてもっと知りました。良い一日をありがとう、もう一度ありがとう。 – alexis