2012-01-23 7 views
0

これまでに尋ねられたことがありましたが、全面的にこれを検索しましたが、満足のいく解決策を見つけることができませんでした。.htaccess内のRewriteRuleがアドレスバーに書き換えられたURLを表示しています

私は自分をhttpdocsに次の.htaccessファイル持っている:これは正しく "www.example.com/joebloggs" に "www.example.com/users/jobloggs" とマッピングし

Options +FollowSymlinks 
RewriteEngine on 

RewriteBase/

RewriteCond %{HTTP_HOST} ^(www.)?example.com$ 
RewriteCond %{REQUEST_URI} !^/users/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.+)$ users/$1 [L] 

を適切なインデックスページが正しく表示されます。

問題は "www.example.com/users/jobloggs"が元の(短い)URLの代わりにアドレスバーに表示されています。これに関する助けを本当に感謝します。

答えて

0

あなたはそれが(例えばindex.html/index.phpDirectoryIndexファイルをロードしています言っている場合は、私はあなたのRewriteRule置換で最後のスラッシュの欠如が問題だと思います。次のように試してみてください:

RewriteRule ^(.+?)/?$ users/$1/ [L] 
+0

ありがとう!スラッシュを追加すると、アドレスバーの問題が解決されます。しかし、あなたの答えにあなたが示唆したように、ルールはまだまだ正しいものではありません。リンクをクリックするとwww.example.com/joebloggs/thelink.htmlの代わりにwww.example.com/thelink.htmlが表示されるため、他のページに移動することはできません。 – Kev

+0

ソースコードにはどのようなURLがありますか? '/ thelink.html'はありますか? – JMM

+0

各ユーザーディレクトリの下にサイト全体があります。私が現在持っているRerwiteRuleでは、www.example.com/joebloggsを閲覧するとインデックスページが表示されますが、サイトをナビゲートすることはできません。私がwww.example.com/joebloggs/(後ろのスラッシュに注意してください)にブラウズするとうまくいきます。 – Kev

関連する問題