这个问题非常类似于: 是否可以redirect发布数据? (被问到),但这个答案似乎并不适用于我。
<form action="http://a.test.com/contact" name="contact" method="post">
和一个附加域(test.com是一个插件),里面有一个子域(a。),里面有一个文件item.PHP,.htaccess
我的htaccess如下:
.htaccess隐藏redirect时redirect到外部URL
重写子文件夹的URL条件
Apache + Python Bottle:访客IP总是指127.0.0.1
如果通过htaccess查询string参数不存在,则将HTTPSredirect到HTTP
MOD_REWRITE用于urlvariables,删除空参数并为第一个和第二个variables使用多于1个字段
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.PHP -f RewriteRule ^([^/]+)/$ $1.PHP # Forces a trailing slash to be added RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !(.[a-zA-Z0-9]{1,5}|/)$ RewriteRule (.*)$ /$1/ [R=301,L] #normal rewrites RewriteRule ^[~|-]?([a-zA-Z0-9]+)[/]*$ item.PHP?user=$1 [NC,L]
注意:我将它保留为[NC,L],因为当我将其更改为[NC,P]时,会给我一个500服务器错误。
和我的item.PHP
<?PHP echo "<pre>"; print_r($_POST); echo "</pre>";
无论表单包含什么,$ _POST都是空白的,但是,如果我以http://a.test.com/item.PHP?user=contact作为动作。
一切顺利。 开机后会跳过htaccess,SO上的解决scheme似乎不起作用。
提前致谢
如何通过.htaccess在URL中允许三个可选参数?
Apache /国防部重写:路由一切index.PHP?
htaccess重写URL的PHP参数
在.htaccess中使用保持活动function
Symfony从路由中移除前三个字符
[R=301,L]
您将不得不放弃该规则,或者在POST提交时禁用该规则:
# Forces a trailing slash to be added RewriteCond %{REQUEST_METHOD} !=POST RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !(.[a-zA-Z0-9]{1,L]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。