gpt4 book ai didi

php - .htaccess modrewrite 破坏了我的表格

转载 作者:搜寻专家 更新时间:2023-10-31 21:14:17 24 4
gpt4 key购买 nike

我已经在我的 .htaccess 中添加了一个 modrewrite,现在我的所有表单都不会将发布数据发送到 php 脚本。

代码:例如:我的 .htaccess 删除了 .php 扩展名,如果它是目录,则删除尾部斜杠。

RewriteEngine On

# Redirect index to site root
RewriteCond %{HTTP_HOST} ^mysite.com [NC]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,NC]
RewriteRule ^index.php$ http://www.mysite.com/ [R=301,L]

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

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

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

有没有办法为 modrewrite 规则添加异常(exception),以便忽略某些文件/目录? 所以所有文件都称为 form-process.php、email-process.php、upload-process.php , save-process.php 可以忽略吗?

编辑:我刚刚读到我可以将 !POST 添加到我的查询中。如果我这样添加它,它会起作用吗?

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

# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f !POST
RewriteRule ^([^/.]+)$ $1.php [L]

编辑:还在上面的规则中添加了 [QSA],但仍然没有变量传递给我的表单

编辑:对于遇到这个问题的其他人,我通过选择发布数据的文件并将它们从对 .htaccess 文件的更改中删除来修复它。这并不理想,但目前有效。

# ignore recipes page
RewriteRule ^directorytoremove - [L,NC]
RewriteRule ^filenametoremove - [L,NC]

重定向 301 不会通过 POST 传递任何数据,即使您添加了 QSA。所以你需要做一个post-redirect-get,例如你的表单发布数据,被重定向并且接收文件获取数据并处理它。如果您遇到同样的问题,请将上面的代码粘贴到您的 .htaccess 文件顶部,在打开的 RewriteEngine On 语句下方。

希望对遇到同样问题的人有所帮助!

最佳答案

您可以在开头添加这样的规则(就在 RewriteEngine on 之后)

RewriteRule ^(form|email|upload|save)-process\.php$ - [L]

关于php - .htaccess modrewrite 破坏了我的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12492261/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com