私のウェブサイトからPHP拡張機能を削除しようとしていました。ユーザーがPHPファイルを要求すると、PHPは削除され、ユーザーはリダイレクトされます。ユーザーがPHPなしでURLを入力すると、実際のPHPファイルが提供されます。 URLにGETパラメータがある場合を除いて、これはうまくいきました。私のルールは以下の通りです:Apache Mod_rewriteを使用してGETパラメータを保持したままPHP拡張モジュールを削除する方法は?
# remove .php ONLY if requested directly
RewriteCond %{THE_REQUEST} (\.php\sHTTP/1)
RewriteRule ^(.+)\.php$ /$1 [R=301,L,QSA]
# remove trailing slash ONLY if it is not an existing folder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# rewrite to FILENAME.php if such file does exist and is not a folder
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ /$1.php [L,QSA]
私は、これはすでに任意のGETパラメータが存在する場合でも、PHPを削除することができるはずと思ったが、それは失敗しました。私はまたこのような何かを試みた:
RewriteCond %{THE_REQUEST} (\.php\sHTTP/1)
RewriteRule ^(.)\.php(.)$ $1$2 [R=301,L,QSA]
それはまた働いていない、PHPはまだある。しかし、私はしようとした場合:
RewriteRule ^(.)\.php(.)$ $1$2 [R=301,L,QSA]
すなわち、のRewriteCondの除去、PHP拡張が削除されると、パラメータが保存されていたが、ブラウザがあまりにも多くのリダイレクトがあったと言うように、ページが提供されることはありません。
誰にでも分かりますか?
を
希望:/ $ 1が壊れたURLを生成、アウトで$ 1使用/ – StefanoCudini