我是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]
答案 0 :(得分:0)
问题在于您的R
标记。这会导致重定向。不幸的是,早期的Web浏览器没有遵循HTTP规范,而是使用GET来请求它们的新URL。这导致HTTP被更改(例如引入的308代码)。
基本上,除了GET请求之外,您无法可靠地发出外部重定向。请改用内部重定向(重写)。即,请从第一个R
的结尾处取消RewriteRule
标记。