2013-02-19 35 views
0

阅读源,我想帮助这个问题如何通过重写规则

此命令不起作用好u能帮助我

我有我的网站上新的文件夹下,这名

“TextPHP”

,我把这个代码在.htaccess

重写规则^(。*)/home/myhome/public_html/$1.php [L,T =纯文本/]

我想任何一个进入该文件夹可以从我的PHP文件

读取任何来源,这不行

我尝试H = text/plain的

我得到了错误500

还我尝试 php_value停机 php_value停机

不工作:(

它还有其他的招

我的英语那么差

和惋惜:对

感谢帮助

回答

0

不指定的完整路径重写规则中的文件,您指定的是一个新的绝对URL或相对于Web根目录的URI。所以,如果你想使任何URI去德同名的PHP文件,这里是你会怎么做:

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

没有必要在这里指定/home/myhome/public_html

然而,这是一个基本的例子,通常这是一个过于宽泛的规则,因为它会阻止你从web根目录提供图像或其他实际文件(它们全部以.php为结尾) 。在这样假设这实际上是你想要的,你会经常看到这样的:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*) /$1.php [L] 

此规则适用的情况下,当URI不符合实际的文件名或目录因此请求/some_file.php不会被重定向到/some_file.php.php

+0

也没有工作:( 我的网站example.com和我有很多PHP文件 我想如果一个访问example.com/source/FileName.php阅读example.com/FileName.php作为文本文件 – VegaQ8 2013-02-19 01:46:15

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()显示他们(安全一些基本名()过滤),并将其应用,如:

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

的来源请参阅我的网站http://example.com/和我有超过400个PHP文件在这个网站上,我希望每一个进入http://example.com/source/FileName.php阅读http://example.com/FileName.php的源代码 – VegaQ8 2013-02-19 01:44:53

+0

然后,你需要说包装脚本,例如,请参阅http://stackoverflow.com/questions/10693873/php-show-source-code-instead-of-html-file。 'basename()'是超级关键! – mario 2013-02-19 01:49:02