グーグルでさまざまな例を調べて、次のhtaccessファイルを作成しました。
私のファイルは現在、次のルールで構成されています。
## Enable Rewrite Engine
RewriteEngine on
Options +FollowSymlinks
RewriteBase /
## Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ http://domain.com/$1/ [L,R=301]
## Rewrite URL to exclude wwww.
RewriteCond %{HTTP_HOST} ^www\.domain\.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]
## Actual URL re-writes
RewriteRule ^profile/(.*)/? profile.php?pid=$1 [QSA,L]
RewriteRule ^profile/(.*)/(.*)/? profile.php?pid=$1&view=$2 [QSA,L]
私が理解していることから、これはhttp://www.domain.comなどの URLをhttp://domain.comに書き換え、ディレクトリ ファイルのリストを無効にし (+FollowSymLinks)、次のような URL にスラッシュを追加します。http://domain.com/testをhttp://domain.com/test/に変更して、検索エンジンでその URL の表現が 1 つだけになるようにします。素晴らしい!しかし、私の URL は、HTML ブレッドクラムの 1 つのリンクをクリックすると、書き換えられる URL の一部を追加し続けます...
例:http:/domain.com/profile/1/shouts/pictures/all/all/all/all/all/
同じリンクを連続してクリックすると... なぜこのようなことが起こるのですか? これは私を完全に狂わせている問題です!
mod rewriteチートシートとチュートリアルを読んでみましたが、どれも意味がないようです:(
編集:
(相対?) リンクで a href コードをエコーしていることに注意してください。これは正しいやり方ですか?
<a href="<?php echo "profile/". $p_id."/all" ?>">All</a>
編集2:
絶対リンクも使用してみましたが、同じ問題が発生しました。私のPHPは次のようになりました:
<a href="<?php echo $websiteUrl. "profile/". $p_id."/all" ?>">
どこで$websiteUrl
=http://domain.com/
誰かアイデアはありますか?