2016-06-13 13 views
1

私が直面している問題は次のとおりです。
フォームから送信ボタンを押すと、アクションは相対パスに設定されます。 初めて私がボタンを押すと、htaccessを書き換えると完璧なURLが得られます しかし、もう一度ヒットすると間違ったURLが表示されます。htaccess rewriteはじめて動作する

例:

Options -MultiViews 
    RewriteEngine On 

    RewriteBase /public 

    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 

    RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

と、このそれ私が欲しいもの:

www.example.dev/public/controller/method/params

は、まず、これは私のhtaccesファイルであります
書き換えは私に完全なURLを与え、私は以下を抽出することができます:
1-コントローラ
2つのparamsを持つ2つの正しい方法。
私はこれを働かせました。

が、私は次のコードがある場合: www.example.dev/public/controller_example

<form class="fomulier" action="controller_example/method_example" method="post"> 
     <div class="search"> 
     <label for="search" class="title">Search:</label><br/> 
     <input type="text" id="search" name="search" value=""/> 

     <input type="submit" value="Search"> 
    </div> 
    </form> 

をフォームに私をもたらします。私が(提出)ボタンを押したときに
は、それからそれはに私をもたらします:
www.example.dev/public/controller_example/ method_example
完璧!まさに私が欲しいものです。
私はフォームに戻ってきましたが、方法(method_example)は過去です。

しかし、もう一度送信ボタンを押すと失敗します。
私は今持っURLは次のとおりです。
www.example.dev/public/controller_example/ controller_example/method_example
と再びそれを打つ:
www.example.dev/public/controller_example/controller_example/ controller_exampleを

上/ method_example

ので、この時に立ち往生しそうイム、右の誰もそれを得ることができません?

ps:私の悪い私の考えは、私はオランダ語です。

+0

'戻る'ボタンを押すと、ブラウザのアドレスバーに 'www.example.dev/public/controller_example /'または '/ controller_example'が前に付加されてアクションURLが生成されている可能性があります。確実に静的絶対パスを使用することを検討してください。 – revo

+0

私はバックボタンを使用していないので、送信ボタンを押すだけです。フォームのアクションは最初のURLにのみメソッドを持ちますので、コントローラー - >メソッドを呼び出すとモデルはPOST [データ]を処理して返すようになります。 controller-> methodeは私をフォームに戻します。結果のみで –

+0

絶対パスでは完全なURLで同じ問題が発生する –

答えて

0

解決済み:
場合によっては思ったよりも簡単です!

私は動作しませんdiscribed上記の問題があることを理由:それはリッスンから
が 単に私の最初のURLを表示するには、
www.rsmk.dev/public/controller_exampleですbutinfact:
www.rsmk。DEV /公共/ controller_example /私は、送信ボタンを打ったときのindex.php

今すぐフォームアクション= "controller_example/method_exampleは" 私に次のURLを与える:
www.rsmk.dev/public/Controller_example/ method_example
これはまさに私が今のところよくしたいものです。
(私のrouting.phpは
www.rsmk.dev/public/ Controller_example/method_exampleの配列しか取らず、私の方法は私にビューページを与えます)。 ので、私は再びフォームを、それを打ったときにアクション= "controller_example/method_example" 今私に次のURLを提供します:
www.rsmk.dev/public/controller_example/ Controller_example/method_example
間違った!!!
www.rsmk.dev/public/controller_example/controller_example/ Controller_example/method_example
など!!!!:

し、それを打つが、再び私にfolowingを与えます私の方法は毎回differnt URLだけを表示するようにしています(毎回コントローラ_example
実際にはの相対パスは決して動作しません!

私は絶対パスを試しました。私は提出するたびに同じ結果を返します。 ???????
私はそれがhtaccessファイルでなければならないと考えていた理由でした。
manny atempts後、ここで検索して尋ねるカップル時間。
私はついにこの問題を見る。私がHTTP忘れたとき
私の絶対パスは絶対ではありません。私を助けるためREVOする//

恥の恥の恥

マニーのおかげで、あなたの最初の答えは正しかったようだが1

関連する問題