【发布时间】:2015-05-05 13:38:57
【问题描述】:
我创建了一个在教程中看到的 htaccess 文件。我的主要目标是删除浏览器中文件名末尾的 .php 。这非常有效。但是,自从我创建它以来,我遇到了一些重大问题。
任何具有 POST 方法的东西都不会被处理。它只是重新加载当前页面,但什么都不做。
当我尝试登录时,它会将我重定向到我的主页。然后当我回到登录页面时,它允许我登录。
我的字体很棒的图像不再显示。
问题 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