RewriteCondition rewriteRule如何使所有流量直接指向单个文件?

时间:2011-04-04 05:44:15

标签: php apache .htaccess mod-rewrite apache2

亲爱的朋友们,
想象一个单页网站

RewriteCond %{HTTP_HOST} ^1pagesite.org$  
RewriteRule ^$ 1pagesite.php [L]

目前,主页确实正确显示了1pagesite.php。

然而, 当请求另一个文件时,请确认服务器上的test.php,显示test.php!,而我想指出ALL和ANY暂时向1pagesite.php交易。如何实现这一点,因为没有其他文件或文件夹/文件或此域之后的任何内容,并且所有内容都指向1pagesite.php?

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

3 个答案:

答案 0 :(得分:2)

RewriteRule ^.*(html|php)$ 1pagesite.php [L]

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

答案 1 :(得分:1)

你可以尝试这条规则:

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

仅将php和html页面重定向到1pagesite.php

答案 2 :(得分:1)

您的重定向仅匹配^$,即仅匹配根页(空字符串)。

RewriteCond %{HTTP_HOST} ^1pagesite.org$  
RewriteRule ^.*$ 1pagesite.php [L]

所以每个请求都会被重定向到1pagesite.php页面(图片,css,......正如桑德所说)。

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

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

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