Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 .htaccess 301从无尾随斜杠重定向到.php_Apache_.htaccess_Redirect_Mod Rewrite - Fatal编程技术网

Apache .htaccess 301从无尾随斜杠重定向到.php

Apache .htaccess 301从无尾随斜杠重定向到.php,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,在.htaccess中,我试图将一个没有尾随斜杠的URL重定向到一个扩展名为.php的URL 问题似乎在于页面名称是相同的,因为当起始URL和重定向URL之间的页面名称不同时,我使用的301重定向样式会起作用 使用下面的301重定向,我得到一个重定向循环错误 RewriteRule ^example http://www.example.com/example.php [R=301,L] 我怎样才能使301重定向工作?我尝试先重定向到另一个页面,然后再次重定向到最终的URL,但没有成功 在.

.htaccess
中,我试图将一个没有尾随斜杠的URL重定向到一个扩展名为
.php
的URL

问题似乎在于页面名称是相同的,因为当起始URL和重定向URL之间的页面名称不同时,我使用的301重定向样式会起作用

使用下面的301重定向,我得到一个重定向循环错误

RewriteRule ^example http://www.example.com/example.php  [R=301,L]
我怎样才能使301重定向工作?我尝试先重定向到另一个页面,然后再次重定向到最终的URL,但没有成功

.htaccess
的顶部是

AcceptPathInfo off
Options +FollowSymlinks
RewriteEngine on
RewriteBase /

正则表达式^example同时匹配
example
example.php

因为您使用的是301重定向,所以从浏览器请求
示例
。获取一个响应,通知浏览器访问
example.php
。但是,
example.php
的第二个请求也与重写规则匹配,并生成另一个301重定向

更新正则表达式以仅处理
示例
请求

RewriteRule ^example$ http://www.example.com/example.php  [R=301,L]

尾随的$告诉正则表达式引擎匹配在该点结束,并且请求字符串中不能有其他字符。

谢谢,这样就行了。对$和正则表达式感兴趣;我有很多东西要学。