Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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
Php 重写规则如何使所有流量直接指向单个文件?_Php_Apache_.htaccess_Mod Rewrite_Apache2 - Fatal编程技术网

Php 重写规则如何使所有流量直接指向单个文件?

Php 重写规则如何使所有流量直接指向单个文件?,php,apache,.htaccess,mod-rewrite,apache2,Php,Apache,.htaccess,Mod Rewrite,Apache2,亲爱的各位, 想象一下一个单页面的站点 RewriteCond %{HTTP_HOST} ^1pagesite.org$ RewriteRule ^$ 1pagesite.php [L] 目前,主页确实正确显示了1pagesite.php 但是,当请求另一个文件时,比如说服务器上的test.php,就会显示test.php!,我想暂时将所有和任何流量指向1pagesite.php。如何做到这一点,使这个域出现后没有其他文件或文件夹/文件或任何东西,所有内容都指向1pagesite.php

亲爱的各位,
想象一下一个单页面的站点

RewriteCond %{HTTP_HOST} ^1pagesite.org$  
RewriteRule ^$ 1pagesite.php [L]
目前,主页确实正确显示了1pagesite.php

但是,当请求另一个文件时,比如说服务器上的test.php,就会显示test.php!,我想暂时将所有和任何流量指向1pagesite.php。如何做到这一点,使这个域出现后没有其他文件或文件夹/文件或任何东西,所有内容都指向1pagesite.php

非常感谢您的提示和建议,以解决这个难题。干杯,萨姆

RewriteRule ^.*(html|php)$ 1pagesite.php [L]
注意:这只会将请求重定向到.html和.php页面

注意:这只会将请求重定向到.html和.php页面

您可以尝试以下规则吗:

RewriteCond %{HTTP_HOST} ^1pagesite.org$ [NC]
RewriteCond %{REQUEST_URI} !1pagesite.php$
RewriteRule \.(php|html)$ /1pagesite.php [R=302,L]
要仅将php和html页面重定向到1pagesite.php,可以尝试以下规则:

RewriteCond %{HTTP_HOST} ^1pagesite.org$ [NC]
RewriteCond %{REQUEST_URI} !1pagesite.php$
RewriteRule \.(php|html)$ /1pagesite.php [R=302,L]

要仅将php和html页面重定向到1pagesite.php,您的重定向仅匹配
^$
,即仅匹配根页面(空字符串)

因此,每个请求都将被重定向到1pagesite.php页面(如Sander所说的图像、css等)

如果需要过滤某些内容,可以添加

RewriteCond %{REQUEST_FILENAME} !^.*\.(css|jpg)$

启用/目录中的.css和.jpg文件。这可以为其他子目录文件等进行自定义。

您的重定向只匹配
^$
,也就是说,只匹配根页面(空字符串)

因此,每个请求都将被重定向到1pagesite.php页面(如Sander所说的图像、css等)

如果需要过滤某些内容,可以添加

RewriteCond %{REQUEST_FILENAME} !^.*\.(css|jpg)$


启用/目录中的.css和.jpg文件。这可以为其他子记录文件等进行自定义。

RewriteRule^(.*)$1pagesite.phpCool dude!谢谢,把它作为答案,这样我就可以这样对待:)@Lawrences甚至80%都不确定我是对的n被吓到了^(.*)$1pagesite.phpCool dude!谢谢,把它作为答案,这样我就可以这样对待:)@Lawrence甚至80%都不确定我是对的n被吓坏了,谢谢@Sander+1通知这件事。。。的确嗯,我想我希望所有的PHP和HTML页面都直接指向1pagesite.PHP,但是让其他的东西去吧,否则就不会像你指出的那样出现imges/css/folder/layout.css中断。来自代尔夫特的干杯@山姆:我相信这个规则会导致无限重定向。我已经更新了规则,只重定向html/php请求@阿努巴瓦:这不应该导致无限重定向,因为重写是内部的,而不是301重定向。非常感谢,不知怎么的,这也不起作用。如果只是我的服务器,我很乐意接受任何一个答案。然而,目前这两种方法都不适用于我的Apache2 Fedora。。。您知道任何可以测试重定向的在线工具吗?@Sam:是的,尝试测试您的重新布线规则。感谢@Sander+1通知此。。。的确嗯,我想我希望所有的PHP和HTML页面都直接指向1pagesite.PHP,但是让其他的东西去吧,否则就不会像你指出的那样出现imges/css/folder/layout.css中断。来自代尔夫特的干杯@山姆:我相信这个规则会导致无限重定向。我已经更新了规则,只重定向html/php请求@阿努巴瓦:这不应该导致无限重定向,因为重写是内部的,而不是301重定向。非常感谢,不知怎么的,这也不起作用。如果只是我的服务器,我很乐意接受任何一个答案。然而,目前这两种方法都不适用于我的Apache2 Fedora。。。你知道有什么在线工具可以测试重定向吗?@Sam:是的,试着测试你的重新布线规则。谢谢+1@Anubhava,但似乎不起作用??我得到一个白色的page@Sam:在发布之前,我已经在本地apache安装上对其进行了测试,并且运行良好。我建议注释掉第一行,即重写cond%{HTTP_HOST}^1pagesite.org$[NC],然后再试一次。@Sam:我只是做了一个小改动,将
R=302
也包括在内,使其在浏览器中重定向。如果它仍然不起作用,您可以在运行测试时
tail
您的Web服务器的访问日志。@Anubhava在共享主机日志上是不允许的。访问日志中也没有特别的内容。。。就布兰克·佩奇?!我觉得这是第三条奇怪的规则。(等等)前面应该有一个
^
吗?我试过了,但没用。。。奇怪…@Sam:你能试试这个
RewriteRule^.*(php | html | htm)$吗http://1pagesite.org/1pagesite.php [R=302,L]
还可以尝试逐个注释两个重写条件。然而,注释掉第二条会导致无限的重定向,但是为了测试,您可以尝试一下。如果您不确定是否正在读取.htaccess,请清除此文件中的一些垃圾字符,您应该会在浏览器中看到内部错误消息。谢谢+1@Anubhava,但似乎不起作用??我得到一个白色的page@Sam:在发布之前,我已经在本地apache安装上对其进行了测试,并且运行良好。我建议注释掉第一行,即重写cond%{HTTP_HOST}^1pagesite.org$[NC],然后再试一次。@Sam:我只是做了一个小改动,将
R=302
也包括在内,使其在浏览器中重定向。如果它仍然不起作用,您可以在运行测试时
tail
您的Web服务器的访问日志。@Anubhava在共享主机日志上是不允许的。访问日志中也没有特别的内容。。。就布兰克·佩奇?!我觉得这是第三条奇怪的规则。(等等)前面应该有一个
^
吗?我试过了,但没用。。。奇怪…@Sam:你能试试这个
RewriteRule^.*(php | html | htm)$吗http://1pagesite.org/1pagesite.php [R=302,L]
还可以尝试逐个注释两个重写条件。然而,注释掉第二条会导致无限的重定向,但是为了测试,您可以尝试一下。如果您不确定是否正在读取.htaccess,请删除此文件中的一些垃圾字符,您应该会在浏览器中看到内部错误消息。