htaccess重写并提交表单不能一起工作

时间:2012-08-15 15:54:57

标签: php jquery ajax .htaccess rewrite

经过几次研究后放弃并在这里发帖,如果有人可以把事情搞清楚,那就太好了,谢谢

当我使用http://site.com/file.php?url=2012/08/15/My-html-page一切正常时,ajax会向file.php发送一个帖子并显示它,但是当我使用htaccess url http://site.com/2012/08/15/My-html-page.html帖子表格重写时,什么都不做,它就会工作< / p>

链接:

原文:http://site.com/file.php?url=2012/08/15/My-html-page

使用htaccess:http://site.com/2012/08/15/My-html-page.html

重新录制

数据库条目:2012/08/14 / My-first-post

要添加html agter页面,我添加了

$url=$url.'.html'; 
$url= $_GET["url"];

我在文件中的ajax

<SCRIPT language="JavaScript">

$(function() {
$(".comment_button").click(function()
{

var element = $(this);
var note = $("#note").val();
var dataString = 'note='+note;


if(note=='')
{
$('#flash').fadeIn("fast");
}
else
{
 $.ajax({
 type: "POST",
 url: "file_post.php",
 data: dataString,
 cache: false,
 success: function(html){
 $('body').load('/<? echo $url ?>.html');
 }
 });
 }
return false;
});
});
</script> 

我在file.php中的表单

 <form name="comment" method="post" action>

 <button class="comment_button" type="submit"><span>Отправить</span></button>
 <textarea name="note" id="note"></textarea>
 </form> 

我在php_post.php中的php文件

if(isSet($_POST['note']))  {

$note=$_POST['note'];
$note = html_entity_decode($note);
$date=date("Y-m-d");
$time=date("H:i:s");

$table = "insert into comment (note, date, time) values ('$note', '$date', '$time');";
mysql_query($table);


}

我的htacces

 Options +FollowSymLinks
 Options -Indexes
 RewriteEngine On
 RewriteBase /

<Files inc/config.php>
deny from all
</Files>

RewriteRule ^([a-zA-Z0-9-/]+).html$ file.php?url=$1 [QSA,L]
RewriteRule ^([a-zA-Z0-9-/]+).html/$ file.php?url=$1 [QSA,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

重写页面上的$ _SERVER ['REQUEST_URI']给我一个空输入,它正常吗?

2 个答案:

答案 0 :(得分:0)

尝试将您的2条规则更改为:

RewriteRule ^([a-zA-Z0-9-/]+).html$ file.php?url=$1.html [QSA,L]
RewriteRule ^([a-zA-Z0-9-/]+).html/$ file.php?url=$1.html [QSA,L]

.html被剥离,因此您的file.php脚本被调用如下:

http://site.com/file.php?url=2012/08/15/My-html-page

而不是

http://site.com/file.php?url=2012/08/15/My-html-page.html

答案 1 :(得分:0)

我不知道错误是什么,带有斜线或数字和htaccess的东西 但我找到了

的解决方案

RewriteRule ^ read /([A-Za-z0-9 -_] +] *)$ file.php?url = $ 1 [L]

没有html或php