私は以前にこの質問をし、理解できなかったコードの断片を使用しましたが、今ではすべてがバラバラになっています。うまくいけば、以前よりも正確に自分の意図を理解することができます。正規表現を学ぼうとしていますが、学んだことをmod-rewriteテクニックに適用できないようです。
.php
私のWebサイトには、サイト全体でさまざまなフォルダーの深さで終わるURLがたくさんあります。site.net/folder/folder/filename/
サブフォルダの数に関係なく、すべてのURLを使用したいと思います。
私の問題は、いくつかのフォームがPOSTおよびGETリクエストを使用していることです。したがって、ユーザーが[アップロード]をクリックしてファイルをアップロードするとき、私は通常、フォームのアクション部分をファイルに設定し.php
ます。たとえばsite.net/folder/script/upload.php
、ページsite.net/folder/folder/scripts/upload.php
にリダイレクトする前にファイルのアップロードを処理しxyz
ます。
.php URLが消去されると、アップロードスクリプトも見つかりません。mod-rewriteルールは、「worker」スクリプト(upload.php、processcontactinfo.phpなど)を妨げることなくphp拡張機能を利用できるように構成できますか?編集
これが私のスクリプトのこれまでの様子です。
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^POST\ /([^.\ ]+\.)+php(\?[^\ ]*)?\ HTTP
RewriteCond %{THE_REQUEST} ^GET\ /([^.\ ]+\.)+php(\?[^\ ]*)?\ HTTP
RewriteRule ^(.+)\.php$ http://www.site.net/$1 [R=301,L]
RewriteRule ^([^/]+/)*index/?$ http://www.site.net/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ http://www.site.net/$1 [R=301,L]
RewriteCond $1 !^([^.]+\.)+([a-z0-9]+)$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*[^/])$ /$1.php [L]
RewriteRule (.*)/$ $1.php [L]
さまざまなバリエーションを試しましたが、前述のように、正規表現を読んだり作成したりするのは苦手です。したがって、ほとんどの場合、試行錯誤の努力がせいぜいです。これにより、site.net / folder / filename /を介してファイルファイルにアクセスできますが、リクエストはsite / folder/filename.phpからsite.net/folder/filename/に変更されません。また、この時点では、さまざまなスクリプトが見つかりません。