如何通过RewriteRule读取源代码

时间:2013-02-19 01:35:01

标签: php apache .htaccess mod-rewrite

我想在这个问题上提供帮助

这个命令不好用你能帮我吗

我的网站上有一个名为

的新文件夹

“TextPHP”

我把这段代码放在.htaccess

RewriteRule ^(。*)/ home / myhome / public_html / $ 1.php [L,T = text / plain]

我希望任何人去那个文件夹都可以从我的php文件中读取任何来源

这不起作用

我尝试H = text / plain

我得到错误500

我也试试   php_value引擎关闭   php_value引擎关闭

不工作:(

还有其他任何技巧

抱歉我的英语非常糟糕:p

感谢您的帮助

2 个答案:

答案 0 :(得分:0)

您没有在重写规则中指定文件的完整路径,您指定的是新的绝对URL或相对于Web根目录的URI。因此,如果你想让任何URI转到同名的PHP文件,你可以这样做:

RewriteEngine On
RewriteRule ^(.*) /$1.php [L]

无需在此指定/home/myhome/public_html

这是一个基本的例子,但通常情况下,这是一个太宽泛的规则,因为它会阻止您从Web根目录提供图像或其他实际文件(它们都会以{{1}结尾因此,假设这实际上是你想要的,你通常会看到类似的东西:

.php

此规则适用于URI与实际文件名或目录不匹配的情况。因此,RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*) /$1.php [L] 的请求不会重定向到/some_file.php

答案 1 :(得分:0)

您可以将您的网络服务器配置为显示*.phps文件的来源(例如制作符号链接):

AddType application/x-httpd-php-source .phps

或者为该目录禁用PHP处理完全使用:

RemoveHandler .php 
RemoveType .php

可选地或另外地:

php_flag engine off

在某些设置(cgi / fastcgi)上甚至:

Options -ExecCGI

如果你想使用mod_rewrite,那么编写一个包装脚本,通过readfile()(以及一些basename()过滤来显示它们)并将其应用为:

RewriteRule ^(.+\.php)$ showsrc.php?file=$1