Htaccessを使用すると、URLからwwwを削除できますが、index.phpを完全に削除することで無限に苦労しています。WWWがURLにある場合、htaccessはindex.phpを削除しません
私はcodeigniterフレームワークを使用しており、設定ファイルを確認しました。
$config['index_page'] = '';
$config['base_url'] = '';
アイブ氏も試してみました:誰かがSO上の別の場所に提案されているよう:! でRewriteBase/ するRewriteCond%{REQUEST_FILENAME} -f のRewriteCondで
RewriteEngine:
$config['base_url'] = '/';
は私のhtaccessファイルは、このように見えました%{REQUEST_FILENAME}!-d RewriteRule ^(。*)$ index.php?/ $ 1 [L]
#Force non-www:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.mywebsite\.com [NC]
RewriteRule ^(.*)$ http://mywebsite.com/$1 [L,R=301]
アイブ氏は、モード書き換えルールを書くのすべての異なるバージョンを試してみましたこの1つは最高に動作しますが、それは現時点で
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ index.php?/$1 [L,QSA]
結果にURLとスラッシュ RewriteEngineに疑問符が追加されます私がwww.mywebsite.comと入力すると、それは正しいmywebsite.comに変更されます。
しかし、私はwww.mywebsite.com/someuri入力した場合、それはURLが www.mywebsite.com/?/なり、最後modrewriteルールにwww.mywebsite.com/index.php?someuri
なり後者では
# Now the CodeIgniter part
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
、私はURLにindex.phpを入力すると、それが離れて行くdoesntの:someuri
は、私は次のようにindex.phpの後に疑問符を追加してみました。
私は明らかにmod-rewriteを理解していません。誰かが正しい方向に私を導くことができますか?
おそらくあなたは強制的な非wwwルールで '[L、R = 301]'を持っているからです。 'L'は最後の規則を示しますので、それ以上処理しないでください。そこから削除してみてください。私はそれが答えであるために、現時点でそれをテストすることはできません。私はApacheをインストールしたマシンではありません。 – gabe3886
このhtaccessテスターは本当に便利です。[http://htaccess.madewithlove.be/](http://htaccess.madewithlove.be/) – DFriend
私は[L]を削除しましたが、結果は同じです。 – Ask