Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess-如果发布数据,请不要重写URL_Php_Apache_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Php htaccess-如果发布数据,请不要重写URL

Php htaccess-如果发布数据,请不要重写URL,php,apache,.htaccess,mod-rewrite,url-rewriting,Php,Apache,.htaccess,Mod Rewrite,Url Rewriting,我已经阅读了很多关于htaccess的回复,但它仍然让我感到困惑。我在.htaccess文件中有以下规则,基本上从文件中删除.php扩展名并解析无扩展URL: RewriteEngine On # Unless directory, remove trailing slash RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^([^/]+)/$ http://www.example.com/$1 [R=301,L] # Redirect ext

我已经阅读了很多关于htaccess的回复,但它仍然让我感到困惑。我在.htaccess文件中有以下规则,基本上从文件中删除.php扩展名并解析无扩展URL:

RewriteEngine On

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://www.example.com/$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://www.example.com/$1 [R=301,L]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]

但是,当我想联系例如contact_form.php(处理HTML表单中表单数据的处理)时,它会被重写为contact_form,所有POST数据都会丢失。我想实现的是,当请求包含post数据时,URL不应该被重定向/重写。老实说,我不知道重写规则应该是什么样子。非常感谢大家的帮助

您可以将此规则作为第一条规则插入,以忽略POST请求:

RewriteCond %{REQUEST_METHOD} POST
RewriteRule ^ - [L]

如果要从某些规则序列中排除post请求,请使用:RewriteCond%{request\u METHOD}!邮递