2009-07-17 19 views
0

を台無しにここで私が持っているリダイレクトです:mod_rewriteのリダイレクトがパス

RewriteEngine On 
RewriteRule ^([a-zA-Z0-9_-]+)$ user.php?username=$1 
RewriteRule ^([a-zA-Z0-9_-]+)/$ user.php?username=$1 

問題は、私はhttp://www.example.com/appleを入力した場合、それはページ上の私のリンクに来るとき、それはOKですです。

しかし、もし私がhttp://www.example.com/apple/(最後のスラッシュを注意してください)を使用すると、リンクがすべて壊れてしまいます。

.htaccessを書き込むにはどうすればいいですか?リンクには最後のスラッシュは含まれておらず、ページにリンクが張られていませんか?

アップデート:私は使用して終了:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} ^(.+)/$ 
RewriteRule ^(.+)/$ /$1 [R=301,L] 

答えて

2

あなたは、次の最初と最後のスラッシュを取り除くことができます。

remove-those-trailing-slashes-from-your-uris

を次に、その時点の後、通常の方法。

+0

驚くような答え!本当にありがとう!!! –

0

外部リソースを参照するには、絶対URLパスまたは絶対URLを使用することを検討する必要があります。

相対URLはベースURLから解決されるため、それ以外の方法で宣言されていない場合は現在のドキュメントのURLです(BASE HTML element参照)。したがって、/baz/quuxを参照する場合、baz/quuxを使用すると、/fooで使用すると正しく/baz/quuxに解決されますが、/foo/barで使用される場合は/foo/baz/quuxに解決されます。しかし、絶対URLパス/baz/quuxは常に/baz/quuxに解決されます。

関連する問題