.htaccessファイルで次のものを使用していますが、正しく機能していないようです。
Redirect 301 top_users.php http://example.com/top-users
RewriteRule ^top-users/?$ top_users.php
Redirect 301 register.php http://example.com/register
RewriteRule ^register/?$ register.php
Redirect 301 register.php?log=1 http://example.com/login
RewriteRule ^login/?$ register.php?log=1
トップユーザーページは正常に機能しているようです。/loginまたは/registerに直接アクセスすると正常に機能しますが、リダイレクトが機能しません。リダイレクトページ名の前にスラッシュを追加しようとしましたが、間違ったパスが表示され、見つからないと表示されます。
何か案は?
編集:
アップデート:
私が使用した最終的なコードは、JonLinの助けに感謝して以下のとおりでした。
RewriteEngine On
RewriteBase /
Options +FollowSymLinks
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /top-users(/|$|\ )
RewriteRule ^top-users(/|$|\ ) top_users.php [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /top_users\.php
RewriteRule ^top_users\.php$ http://example.com/top-users/ [R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /register(/|$|\ )
RewriteRule ^register(/|$|\ ) register.php [L]
# check if request for register.php does not include log=1 in query string
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /register\.php
RewriteCond %{QUERY_STRING} !log=1
RewriteRule ^register\.php$ http://example.com/register/ [R=301]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /login(/|$|\ )
RewriteRule ^login(/|$|\ ) register.php?log=1 [L,QSA]
# check if request for register.php includes log=1 in query string
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /register\.php
RewriteRule ^register\.php$ http://example.com/login/? [R=301]