RewriteEngine On
RewriteBase /
# Use the following rule if you want to make the page like a directory
RewriteRule ^(v)$ /$1/
# The following rule does the rewrite.
RewriteRule ^(.+)/$ profile.php?name=$1
# The following rewrite the other way round:
RewriteCond %{REQUEST_URI} ^/profile.php
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD|TRACE)\ /profile.php
RewriteCond %{QUERY_STRING} name=([^&]+)
RewriteRule ^profile.php$ %1?
上記のコードを .htaccess ファイルで実行しています。これは profile.php ページで正常に機能します。以前は、私の profile.php がこの種の URL を表示していたからです。
http://mysite.com/profile.php?name=john
しかし、私がそのコードを書いたとき、これは結果です:
http://mysite.com/john/
このコードを自分の category.php にも適用したかったので、上記のコードをコピーするだけで、.htaccess ファイル全体は次のようになります。
RewriteEngine On
RewriteBase /
# Use the following rule if you want to make the page like a directory
RewriteRule ^(v)$ /$1/
# The following rule does the rewrite.
RewriteRule ^(.+)/$ profile.php?name=$1
RewriteRule ^(.+)/$ category.php?cid=$1
# The following rewrite the other way round:
RewriteCond %{REQUEST_URI} ^/profile.php
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD|TRACE)\ /profile.php
RewriteCond %{QUERY_STRING} name=([^&]+)
RewriteRule ^profile.php$ %1?
RewriteCond %{REQUEST_URI} ^/category.php
RewriteCond %{THE_REQUEST} ^(GET|POST|HEAD|TRACE)\ /category.php
RewriteCond %{QUERY_STRING} cid=([^&]+)
RewriteRule ^category.php$ %1?
しかし、このコードは奇妙な結果をもたらします。なぜなら、私
http://mysite.com/john/
が見ているコンテンツにアクセスすると、私のcategory.phpのコンテンツだからです。
ここで何をすべきですか?どんな助けでも大歓迎です!
ありがとう!