Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Apache URL bug.htaccess结尾的尾随斜杠_Apache_.htaccess - Fatal编程技术网

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谢谢,我以前不知道,重定向是缓存的,很好。