我有2個簡單文件register.php
和user-insert.php
。與方法POST
register.php
文件保存的HTML表單,提交按鈕命名submit
在以下幾點:
<form action="user-insert.php" class="contact-form" method="post">
<ul>
<li>
<label for="who-are-you" class="first-col">Who are you?</label>
<select name="who-are-you" id="who-are-you" class="select">
<optgroup label="Who are you?">
<option value="1">Employer</option>
<option value="0">Employee</option>
</optgroup>
</select>
</li>
<li>
<label for="email" class="first-col">Email</label>
<input id="email" type="email" name="email" placeholder="[email protected]" required />
</li>
</ul>
<input type="submit" name="submit" value="Sign Up" class="btn btn-primary" />
</form>
而且有user-insert.php
文件:
session_start(); // tried to remove this, but It do nothing with this problem
// there checking for an errors
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
require_once("connect.php");
if(isset($_POST['submit'])) {
// do something
} else {
echo "POST false";
}
它總是返回我POST false
。沒有任何錯誤。只有POST
未設置。
問題
問題是.htaccess
,如果我從這個文件它開始工作刪除相關內容。 .htaccess
現在從www.mysite.com/any-file.php
重定向到www.mysite.com/any-file/
。也許你有什麼想法嗎?
.htaccess
文件看起來像:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase/
RewriteCond %{THE_REQUEST} \s/+(?:(?:index|(.+))\.php)?\?lang=lt\s [NC]
RewriteRule^%1? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+([^.?]+)/?\?lang=lt\s [NC]
RewriteRule^%1? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(?:(?:index|(.+))\.php)?\?lang=(en)\s [NC]
RewriteRule^%2/%1? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+([^.?]+)/?\?lang=(en)\s [NC]
RewriteRule^%2/%1? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(.+)\.php\?lang=(en)&id=([^\s&]+)\s [NC]
RewriteRule^%2/%1/%3? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(.+)\.php\?lang=(en)&id=([^\s&]+)¶m=([^\s&]+)\s [NC]
RewriteRule^%2/%1/%3/%4? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(.+\.php)\?lang=lt&(\S*)\s [NC]
RewriteRule^%1?%2 [L,NE,R=302]
RewriteCond %{THE_REQUEST} \s/+(.+)\.php\?id=([^\s&]+)\s [NC]
RewriteRule^%1/%2? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(.+)\.php\?id=([^\s&]+)¶m=([^\s&]+)\s [NC]
RewriteRule^%1/%2/%3? [R=302,L,NE]
RewriteCond %{THE_REQUEST} \s/+(.*?/)?(?:index)?(.*?)\.php\s [NC]
RewriteRule^%1%2/ [R=302,L,NE]
# url is ONLY '/en' or '/lt' -> redirect to /en/ or /lt/ (adding slash)
RewriteRule ^(en|lt)$ $1/ [R=301,L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !(^|&)lang=(en|lt)(&|$) [NC]
RewriteRule ^(?!(?:en|lt)/)(.+)$ lt/$1 [DPI,NC]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{DOCUMENT_ROOT}/$2.php !-f
RewriteRule ^(en|lt)/([\w-]+)/?$ - [L]
# now all urls have en/ lt/ -> parse them
RewriteRule ^(en|lt)/$ index.php?lang=$1 [L,NC,QSA]
RewriteRule ^(en|lt)/([\w-]+)/?$ /$2.php?lang=$1 [L,NC,QSA]
RewriteRule ^(en|lt)/([\w-]+)/([\w-]+)/?$ /$2.php?lang=$1&id=$3 [L,NC,QSA]
RewriteRule ^(en|lt)/([\w-]+)/([\w-]+)/([\w-]+)/?$ /$2.php?lang=$1&id=$3¶m=$4 [L,NC,QSA]
任何觸發重定向的重寫都會丟棄發佈數據。你真的需要重定向嗎? – apokryfos
@apokryfos我真的需要像'www.mysite.com/etc/something /'這樣的網址,而不是'www.mysite.com/etc.php?param = something'有無重定向我無所謂。 – Infinity
然後將操作設置爲不會觸發重定向的網址,例如'/ user-insert /' – apokryfos