.htaccessを使用して、存在しないファイルをコントローラーページにリダイレクトし、存在する.phpファイルの拡張子を.html拡張子に書き換えたいと思います。ファイルが存在し、.htmlページである場合は、同じままにしておきます。.phpから.htmlへの書き換えルールを挿入しようとするたびに、コントローラーページへのリダイレクトが台無しになっているようです。だから私はここからどこに行くべきかわからない:
Options -Indexes
Options +FollowSymLinks
DirectoryIndex index.php
ErrorDocument 404 /404.php
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ mycontroller.php [L,QSA]
</IfModule>
私が最も感謝するどんな助けでも。
編集
私はここでほとんどの答えを見つけたようです(しかし、ReweriteBseを除外する必要があります。そうしないと機能しません)。最大の問題は、現在、既存の.htmlファイルが機能せず、拡張子が.htmlの.phpファイルのみを提供し、その他すべてをコントローラーに転送することです。既存の.htmlファイルは私の404ページに移動します。既存の.htmlファイルをそのまま維持する方法を知りたいのですが。私の新しいコードは次のとおりです。
RewriteEngine on
RewriteCond %{THE_REQUEST} (.*)\.php
RewriteRule ^(.*)\.php $1.html [R=301,L]
RewriteCond %{THE_REQUEST} (.*)\.html
RewriteRule ^(.*)\.html $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^(.*)$ mycontroller.php [L,QSA]