4

URLを書き換えるために.htccessファイルを使用しています。 .htaccessファイルに次の規則を使用しています。URLリライトを使用した問題(相対パスが機能しない)

Options +FollowSymlinks 
RewriteEngine on 
RewriteBase/
RewriteRule ^product/([0-9]+)/([A-Za-z0-9+]+)$ /product.php?productid=$1&prodname=$2 

書き換えはうまくいきました。

しかし、すべてのケースで相対パスで他のページにアクセスしようとすると、URLが正しくリダイレ​​クトされません。

例えば以下

<form action "something.php" method="post"> 
    <input type="text" name="1" /> 
    <input type="submit" value="submit" /> 
</form> 

のように、私は送信をクリックすると、ロードされるページは、私は、ベースタグを使用してみました

存在し、したがって、404エラーをスローしないhttp://mydomain/product/1/something/something.phpあります私はページのアンカーとモーダルウィンドウを使用している間、これは問題を引き起こします。インデックスページにリダイレクトされます。

詳細が必要な場合は教えてください。

これはかなり新しいです。だから、誰かがこれで私を助けてくれますか?事前に

おかげで、 Kartik

+0

本当に.htaccessファイル全体ですか?メインのApache設定にアクセスできるなら、そのような問題のデバッグに役立つmod_rewriteロギングを有効にすることができます。 –

+0

はい。私はちょうど1つを実装しました.. – gnanesh

答えて

3

これは、問題を解決するURLです。詳細は、mod_rewrite URL info requiredを参照してください。すべての相対URLがそのURLから解決していない現在のURLになるよう(BASE HTML elementを参照)

<form action="/something.php" method="post"> 
<form action="http://example.com/something.php" method="post"> 

それとも、ベースURLを変更します:

あなたは絶対URLパスまたは絶対URLを使用することができますいずれか

<base href="/"> 
<base href="http://example.com/"> 
0

これを解決する簡潔な方法は、URL「something.php」だけでなく、フォームアクション内の/something.phpを絶対パスすることです。