最近、ウェブホストが PHP を新しいバージョンにアップグレードしたところ、リダイレクトの 1 つが機能しなくなりました。
現在機能しないリダイレクトは次のとおりです。
RewriteRule toppers/i-(.*)/n-(.*).html$ toppers.php?i=$1&n=2
他の同様のルールはすべて引き続き機能するため、これは奇妙に感じます。
ここに私の完全な .htaccess ファイルがあります:
Options +FollowSymLinks
RewriteEngine on
RewriteRule toppers/i-(.*)/n-(.*).html$ toppers.php?i=$1&n=2
RewriteRule classes/i-(.*)/n-(.*).html$ classes.php?i=$1&n=2
RewriteRule news/i-(.*)/n-(.*)\.html$ news.php?i=$1&n=2
RedirectMatch 301 ^/cake-topper-pictures-pages/(.*) http://www.caketopper.co.uk/wedding-toppers.php
RedirectMatch 301 ^/cake-topper-picture-pages/(.*) http://www.caketopper.co.uk/wedding-toppers.php
RedirectMatch 301 ^/Cake-Topper-Pictures-Pages/(.*) http://www.caketopper.co.uk/wedding-toppers.php
RedirectMatch 301 ^/feedback-topper-pages/(.*) http://www.caketopper.co.uk/toppers/i-1/n-Couple-on-red-dragon.html
RedirectMatch 301 ^/feedback-toppers/(.*) http://www.caketopper.co.uk/toppers/i-1/n-Couple-on-red-dragon.html
ErrorDocument 404 /404.html
何が間違っている可能性があり、どうすれば修正できますか?
それがPHPファイルではないことを確認するために、私は試しました:
echo $topperId = $_GET['i'];
echo $topperName = $_GET['n'];
そして、URLから何もエコーされません。
オプション +FollowSymLinks RewriteEngine on
RewriteCond %{REQUEST_URI} toppers/i-(. )/n-(. ).html [NC] RewriteRule .* toppers.php?i=%1&n=%2 [L,NC]
RewriteCond %{REQUEST_URI} classes/i-(. )/n-(. ).html [NC] RewriteRule .* classes.php?i=%1&n=%2 [L,NC]
RewriteCond %{REQUEST_URI} news/i-(. )/n-(. ).html [NC] RewriteRule .* news.php?i=%1&n=%2 [L,NC]