修改:错误结果是忘记设置name
属性。它与我的.htaccess
无关。
anubhava已帮助我on this和on this。我再一次与mod_rewrite挣扎,我想简化它并处理我的PHP代码中的请求,这样我再也不用再费心mod_rewrite,因为它让我疯狂。因此,我简化了.htaccess
文件的当前迭代,如下所示:
# RewriteBase and ErrorDcoument have a conflict
RewriteEngine On
RewriteBase /Homepage
ErrorDocument 403 /Homepage/HttpUnauthorized
ErrorDocument 404 /Homepage/HttpNotFound
# Remove Trailing Slashes
RewriteCond %{REQUEST_METHOD} !=POST [NC]
RewriteCond %{REQUEST_URI} /$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f [NC]
RewriteCond %{REQUEST_FILENAME} !-d [NC]
RewriteRule ^(.+)/$ $1 [NC,R=301,L]
# Removes index.php from URLs (actually everywhere, even mid url!)
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteRule (.*?)index\.php/*(.*) $1$2 [R=301,NE,L]
# Directs all web requests through the site index file
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=/$1 [L,QSA]
在我的后端(由index.php
调用)我正在解析这样的请求:
$queryArguments = explode('/', array_shift($_REQUEST));
// First element is null anyways.
array_shift($queryArguments);
$controllerCustomUrl = array_shift($queryArguments);
http://sandbox.com/Homepage/FooList/Argument1/Argument2
之类的内容会产生$controllerCustomUrl = 'FooList'
和$queryArguments = ['Argument1', 'Argument2']
。到目前为止,这种方法效果不错,但我现在正努力提交表格。
当我在http://sandbox.com/Homepage/Test
提交我的表单时,浏览器中的网址会更改为http://sandbox.com/Homepage/Test?
,最后会出现问号,至少可以说这很奇怪。此外,$_POST
变量为空,我在途中丢失了提交的数据。
我很确定这种意外行为是由于我.htaccess
中的一些错误指令而发生的,可能是错误的或重定向过多等等,但我似乎无法找到错误的来源。你看到了什么问题吗?
有关规则的更多信息:和以前一样,我想删除所有网址末尾的尾部斜杠,也可以直接(可见)访问index.php并拥有像这样的网址模式{ {1}} /:controller/:arg1/:arg2/.../:argN
指示的字符串用于查找相应的页面类文件,同时为其提供:controller
到:arg1
的参数。
按要求提供表格标签:
:argN
答案 0 :(得分:1)
好的,现在根据您更新的示例[已删除网址],您的表单包含以下元素:
> dt[, .(a,b,res)] # a b res # 1: 1 2 1 # 2: 11 9 9 # 3: 11 8 8 # 4: 2 6 1 # 5: 7 5 5 # 6: 5 3 3 # 7: 6 3 1
和
<input type="text" class="form-control " id="inputField" placeholder="This form will succeed if you enter 'secret'">
这两个属性都没有<button type="submit" class="btn btn-primary">...
属性,所以它们都被form data set construction algorithm中的步骤3.1跳过,你实际上发送了一个没有任何参数的空POST请求。
编辑:删除了之前的解释,显示的示例当时包含不同的HTML错误。