2013-02-19 61 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