【问题标题】:.htaccess file not allowing POST functions to process.htaccess 文件不允许 POST 函数处理
【发布时间】:2015-05-05 13:38:57
【问题描述】:

我创建了一个在教程中看到的 htaccess 文件。我的主要目标是删除浏览器中文件名末尾的 .php 。这非常有效。但是,自从我创建它以来,我遇到了一些重大问题。

  1. 任何具有 POST 方法的东西都不会被处理。它只是重新加载当前页面,但什么都不做。

  2. 当我尝试登录时,它会将我重定向到我的主页。然后当我回到登录页面时,它允许我登录。

  3. 我的字体很棒的图像不再显示。

问题 1 和 2 绝对是需要解决的最重要的问题。我已经被困了好几天了,找不到任何可以解决这个问题的方法。

除了我提到的问题之外,这就是我目前可以正常加载页面的内容。

RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.example/$1 [R,L]

RewriteEngine On
RewriteBase /

<IfModule mod_headers.c>
  <FilesMatch "\.(ttf|ttc|otf|eot|woff|font.css|css)$">
    Header set Access-Control-Allow-Origin "*"
  </FilesMatch>
</IfModule>

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteRule ^er$ er.png [L]

RewriteCond %{REQUEST_METHOD} !POST [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L,NC]

这最后一部分 ^^ 是我试图添加以使 POST 工作的一件事。它什么也没做。就像我在此处发布的一样,它位于文件中。

我也尝试使用某人为我创建的以下内容,但它甚至不允许我访问我的网站。

RewriteEngine On

# redirect to https
RewriteCond %{SERVER_PORT} 80 
RewriteRule ^(.*)$ https://www.mysite/$1 [R,L]

# allow cross origin fonts
<FilesMatch ".(eot|ttf|otf|woff)">
    Header set Access-Control-Allow-Origin "*"
</FilesMatch>

# add trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*[^/])$ /$1/ [L,R=301]

# allow php files to respond without extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

# remove php extension if provided
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\\.php [L]

我的所有 POST 方法都指向如下。

action="/index"

【问题讨论】:

  • 您是使用绝对网址还是相对网址进行导航?
  • 不太清楚你的意思。你的意思是元网址标签吗?如果是这样,我有这个 example.com">
  • 不,我的意思是说你如何链接你的页面''并命名
  • 我像这样链接我的页面,但我什至无法进入我的主索引页面。
  • 产品
  • 联系方式

标签: php apache .htaccess server


【解决方案1】:

尝试使用绝对 URL,例如http://localhost/yourwebsite/products 在所有 &lt;a href=""&gt; 和 &lt;form action=""&gt; 中。

【讨论】:

  • 那页面不会重新加载吗?假设我正在添加产品并希望它直接将我引导到购物车,这种方法不会让我留在当前页面吗?
  • 不,不会。 header('location: http://localhost/yourwebsite/cart/') ...一旦您使用绝对 URL ...您应该将它用于所有内容...链接 CSS、图像等。
猜你喜欢
相关资源
最近更新 更多
热门标签