私はウェブサイト www.example.com/index.php?q=registration を持っています。それを www.example.com/registration にリダイレクトしたいと思います。
このコードは機能していないようですが、その理由はわかりません。
RewriteEngine On
RewriteRule ^([^/]*)\.html$ /index.php?q=$1 [L]
誰でも私を助けることができますか?
これで試してください
RewriteEngine On
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
RewriteRule ^([^/]*)(.*)$ /$1[L,QSA]
これは、書き換えルールが .html を想定しているためです。ブラウザで
www.example.com/registration.html
htaccess で動作するはずです。そこに入れることができる別のルールは次のとおりです。
RewriteRule ^([^/]*)/$ /index.php?q=$1 [L,QSA]
両方のルールに QSA フラグを追加して、他のクエリ文字列パラメーターが追加されていることを確認することをお勧めします。
最終的に、.htaccess は次のようになります。
RewriteEngine On
RewriteRule \.(jpg|png|gif|php)$ - [L]
RewriteRule ^([^/]*)\.html$ /index.php?q=$1 [L,QSA]
RewriteRule ^([^/]*)/$ /index.php?q=$1 [L,QSA]
RewriteRule ^([^a-z0-9_]+)*$ /index.php?q=$1 [L,QSA]