htaccess-fileを使用して、サイトのURLのレイアウトを構成します。
現時点で問題なのは、フォームを送信できなくなったことです。
まったく同じコードを含む2つのファイルがあります(コピーして名前を変更します)。呼び出すとpage1.php
、URLはとして表示されpage1.php
ます。ログインしようとしたり、エラーが発生したりする間は、すべて正常に動作します。今、私が呼び出すときindex.php
(それは同じコードを持っています!)、それがするべきであるようにURLにhtaccess
隠れます!index.php
しかし、ログインスクリプトをテストすると、フォームを投稿しても何も起こりません。サイトを更新するだけです。だから私はなぜこれが起こっているのか分かりませんか?
htaccess
この動作は、リライトルールを介して明確に引き起こされます。削除htaccess
して再試行しました。それがなくても動作しますが、それでもこの醜いURLがあります。
何が入っているかを示して大丈夫htaccess
:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*)\.html$
RewriteRule ^.*\.html$ %1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php
AddType application/x-httpd-php .htm .html
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^index\.(htm|html|php) http://www.domain.com/ [R=301,L]
## rewrite the index file in subdirectories
RewriteRule ^(.*)/index\.(htm|html|php) http://www.domain.com/$1/ [R=301,L]
フォームは次のように送信されます。
form action = "<?php echo $_SERVER['PHP_SELF']?>" method= "post"...
ですから、私を助けてくれる人がいたら、本当にありがたいです。
アップデート:
私が達成したいことをさらに情報を与えるために:
まず、構造は次のとおりです。言語が異なるため、ルート構造は次のようになります。
www.domain.com/languagefolder/...
これで、ユーザーが電話www.domain.com
をかけているときに、にリダイレクトされますlanguagesubfolder
。このサブフォルダのインデックスページにリダイレクトされている間、最初www.domain.com/languagesfolder/index.php
に表示されるのは表示されないため、表示されないようにする必要がありwww.domain.com/languagesfolder/
ます。それは自動的に行われます。それはいいです。ただし、呼び出すときは、ユーザーが表示できないようwww.domain.com/languagesfolder/index.php
に書き直す必要があります。これはより専門的なようです。www.domain.com/languagesfolder/
.../index.php
次のことは、ファイル拡張子が表示されないようにする.../page
代わりに、ユーザーが入力するだけでよいように、次のページにリンクが与えられることです。.../page.php
最後になりましたが、最後になりますが、ユーザーがファイルの種類を調べようとするときに、拡張子を書き直してSQLインジェクションを防ぎ、ユーザーがまたはと入力できるように.../page.php
し.../page.html
ます.../page.htm
。