htaccess和AJAX POST值

时间:2013-07-15 07:28:07

标签: php ajax .htaccess post

我是htaccess的新手,我通过AJAX遇到POST值问题。

在我开始玩htaccess之前一切正常,所以这可能是一个简单的修复。

我的帖子值正在通过AJAX丢失,我认为这是因为我已经使用htaccess重写了删除后缀(php)的URL。我在正常脚本(即登录)上的POST值有些麻烦,这是通过添加重写条件来解决的。

请参阅下面的代码:

# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

## To internally redirect /dir/foo to /dir/foo.php  
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [L]

RewriteCond %{REQUEST_METHOD} !POST
RewriteRule ^index.php / [L,R=301]

1 个答案:

答案 0 :(得分:0)

问题在于您的R标记。这会导致重定向。不幸的是,早期的Web浏览器没有遵循HTTP规范,而是使用GET来请求它们的新URL。这导致HTTP被更改(例如引入的308代码)。

基本上,除了GET请求之外,您无法可靠地发出外部重定向。请改用内部重定向(重写)。即,请从第一个R的结尾处取消RewriteRule标记。