Apache URL bug.htaccess结尾的尾随斜杠
我的问题是,当我输入Apache URL bug.htaccess结尾的尾随斜杠,apache,.htaccess,Apache,.htaccess,我的问题是,当我输入http://example.com/admin/它运行良好,$\u GET['decode']包含正确的信息,我可以使用它。但是当我输入http://example.com/admin(不带斜杠),我的URL重定向到http://example.com/admin/?decode=admin一切都乱七八糟。有人能帮我吗 这是我的.htaccess: RewriteEngine on Options +FollowSymlinks <FilesMatch "(con
http://example.com/admin/
它运行良好,$\u GET['decode']
包含正确的信息,我可以使用它。但是当我输入http://example.com/admin
(不带斜杠),我的URL重定向到http://example.com/admin/?decode=admin
一切都乱七八糟。有人能帮我吗
这是我的.htaccess
:
RewriteEngine on
Options +FollowSymlinks
<FilesMatch "(config.php|defines.php|functions.php)">
Order Allow,Deny
Deny from all
</FilesMatch>
Header set X-UA-Compatible "IE=Edge,chrome=1"
RewriteCond %{HTTP_HOST} ^www\.(.*) [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,NC,L]
RewriteCond %{REQUEST_URI} !(/$|\.)
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]
RewriteRule ^([^\.]+)$ ./index.php?decode=$1 [L,QSA]
php_value date.timezone "Europe/Bratislava"
重新编写引擎打开
选项+FollowSymlinks
命令允许,拒绝
全盘否定
标题集X-UA-兼容“IE=Edge,chrome=1”
重写条件%{HTTP_HOST}^www\(.*)[NC]
重写规则^(.*)$http://%1/$1[R=301,NC,L]
重写cond%{REQUEST_URI}!(/$|\.)
重写规则(.*){REQUEST_URI}/[R=301,L]
重写规则^([^\.]+)$./index.php?解码=$1[L,QSA]
php_value date.timezone“欧洲/布拉迪斯拉发”
这是因为mod\u dir
在上次规则被mod\u rewrite
运行后,在目录URI(/admin
)中添加了一个尾随斜杠
请尝试以下代码:
DirectorySlash Off
RewriteEngine on
Options +FollowSymlinks
<FilesMatch "(config.php|defines.php|functions.php)">
Order Allow,Deny
Deny from all
</FilesMatch>
Header set X-UA-Compatible "IE=Edge,chrome=1"
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^ http://%1%{REQUEST_URI} [R=301,NE,L]
## Adding a trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{THE_REQUEST} \s/+(.*?)[^/][?\s]
RewriteRule [^/]$ %{REQUEST_URI}/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ ./index.php?decode=$1 [L,QSA]
php_value date.timezone "Europe/Bratislava"
directorysash Off
重新启动发动机
选项+FollowSymlinks
命令允许,拒绝
全盘否定
标题集X-UA-兼容“IE=Edge,chrome=1”
重写cond%{HTTP_HOST}^www\.(.+)$[NC]
重写规则^http://%1%{REQUEST_URI}[R=301,NE,L]
##添加尾部斜杠
重写cond%{REQUEST_FILENAME}-F
RewriteCond%{THE_REQUEST}\s/+(.*)[^/][?\s]
重写规则[^/]$%{REQUEST_URI}/[L,R=301]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^([^/]+)/?$./index.php?decode=$1[L,QSA]
php_value date.timezone“欧洲/布拉迪斯拉发”
立即尝试。我在新浏览器的顶部添加了directorysash Off
。我忘了说,我有一个名为admin
的文件夹,但为什么firefox会这样做?+1,这太棒了@首次亮相,清除你的chrome缓存。301重定向是缓存的,所以Chrome甚至没有从您的服务器请求浏览器中的文件。@zx81谢谢,我以前不知道,重定向是缓存的,很好。