index.php
をmod_rewriteで削除する回答は.htaccess
にたくさんありますが、受信URLからindex.php?
を削除してすべてを書き換える必要があります。つまり、/index.php?pagename.php
から/pagename.php
に変更する必要があります。index.phpを削除しますか? mod_rewriteで
別にこれらの作業のどちらか、およびURLは次のようになりとして、彼らは、index.php
1)
RewriteBase/
RewriteRule ^index.php?/(.*)$ $1 [R=301,L]
2)
RewriteBase/
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]
でもない?
を削除します。example.com/?pagename.php
問題は?
はregexの特殊文字なので、それが追加されていれば、それをエスケープする必要があることを理解しています。しかし、これらの作業のどちら:
1)
RewriteBase/
RewriteRule ^index.php\??/(.*)$ $1 [R=301,L]
2)
RewriteBase/
RewriteCond %{THE_REQUEST} ^GET.*index\.php\? [NC]
RewriteRule (.*?)index\.php\?/*(.*) /$1$2 [R=301,NE,L]
どのように私は正しくindex.php?
で?
をエスケープするのですか?
この回答は私にとっては役に立ちません。それは?
を残します:Mod_rewrite rule to remove index.php
それを超えて:2つの書き換えルールの間にはかなりの違いがありますか?
ページ変数を使用し、その後example.com/?page=pagename.phpないのはなぜ? – Eric
'index.php?pagename.php'は既存のリンクです。私はそれらを変更することはできません。 – BlueDogRanch