ユーザーが入力した場合でも、index.phpをURLに表示したくありません。これは可能ですか?
これは、何回か試した後のバリエーションです。私は何度か近づきましたが、これが今のところです。
RewriteEngine On
RewriteBase /sub-dir/
RewriteCond %{REQUEST_URI} index\.php$ //If URL ends in index.php
RewriteRule (.*)index\.php $1 //Somehow remove index.php from the url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
現在、パーマリンクを設定しています。ユーザーがdomain.com/sub-dir/my-perma-lin/と入力すると、my-perma-linkに基づいてページ上にMyPermaLinkのような文字列が生成されます。ユーザーがindex.phpで終わるURLを送信すると、URLからそのURLが削除され、それ以外はすべてそのままになります。
domain.com/sub-dir/index.php-> domain.com/sub-dir/
domain.com/sub-dir/my-perma-link/index.php-> domain.com/sub-dir/ my-perma-link
http://htaccess.madewithlove.be/にかなりの数のルールを記述しましたが、これは完全に機能しますが、(Dreamhostに)アップロードしても何も機能しません。
これは、たとえば、テスターに従って機能するはずです
RewriteEngine On
RewriteBase /sub-dir/
RewriteCond %{REQUEST_URI} \.php //Not needed but thought it would/should help
RewriteRule (.*)(index\.php)+ $1 [L,R=301,NC]
ただし、/sub-dir/以降のすべてを削除するだけです。
私は非常に明白な何かを見逃しているか、それは不可能です...