htaccess重写规则在提交表单时会导致错误

bon*_*nny 5 php forms apache .htaccess url-rewriting

我使用我的htaccess文件来配置我网站上网址的布局.

目前问题是我不能再发送任何表格了.

我有两个文件,它们将包含相同的代码(复制和重命名).如果我调用page1.phpurl将显示为page1.php.一切正常,我会尝试登录或导致一些错误.现在,当我打电话时index.php(具有相同的代码!),它应该htaccess隐藏index.php在网址中!但是当我测试登录脚本时,发布表单时不会发生任何事情.它只是刷新网站.所以我不知道为什么会这样?

htaccess通过重写规则将彻底导致此行为.我删除htaccess并再次尝试.如果没有它可行,但仍然有这个丑陋的网址.

好的,以显示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]
Run Code Online (Sandbox Code Playgroud)

表格将发送:

form action = "<?php echo $_SERVER['PHP_SELF']?>" method= "post"...
Run Code Online (Sandbox Code Playgroud)

所以,如果有人可以帮助我,我真的很感激.

更新:

提供我想要实现的更多信息:

首先,结构如下:由于语言不同,根结构如下:

www.domain.com/languagefolder/...
Run Code Online (Sandbox Code Playgroud)

现在,当用户正在呼叫时,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.