1

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

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

我的帖子值正在通过 AJAX 丢失,我认为这是因为我使用 htaccess 重写了 URL 以删除后缀(php)。我在普通脚本(即登录)上的 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]
4

1 回答 1

0

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

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

于 2013-07-15T07:36:25.203 回答