2012-03-27 25 views
1

我有我需要用的CGI(search.cgi)延長運行舊版程序運行,但使用PHP我已經重新編寫這些代碼。單一的PHP文件,我需要爲CGI

我如何告訴Apache參考search.cgi但使其運行的search.php?

回答

3

使用URL重寫的Apache的國防部。 財產以後像

RewriteEngine on 
RewriteRule ^/search.cgi$ /search.php [QSA] 

您可以通過改變search.cgi ixsearch.cgi 或者更一般

RewriteEngine on 
RewriteRule ^/([a-z0-9_\-]+)\.cgi$ /$1.php [NC, QSA] 

這將改寫yourdomain.com/任何URL yourdomain.com/{some_scriptname}.cgi {some_scriptname} .php(並通過QSA子句重寫請求GET參數) 腳本名稱可以包含a和z之間或數字或字符之間的任何字母 - 或_(ex番茄汁)。再加上它是不區分大小寫(感謝NC條款)

+0

關閉,但仍然沒有工作,我使用http://taildb.com/ixsearch.php?F=B&TN=N911DE並且需要它通過http://taildb.com/ixsearch.cgi呈現同樣的事情? F = B&TN = N911DE – meme 2012-03-27 03:51:40

+0

更新了我的答案 – grifos 2012-03-27 04:00:30

1

使用mod_rewrite改寫爲search.cgi到search.php中的請求。

0

只要寫一個普通CGI像你這樣做,但讓這個運行就像一個普通的CGI運行使用PHP的命令行版本。

+1

這會起作用,但通常最好是通過mod_php運行PHP腳本(如果可能的話)。 – 2012-03-27 03:25:39

+0

@ IgnacioVazquez-Abrams不,它不是。儘管mod_php是一個糟糕的主意,但受歡迎。 Sane管理員通過FastCGI運行PHP。 – hobbs 2012-03-27 03:52:30

+0

@hobbs:Sane管理員不會運行PHP,除非他們被迫。 – 2012-03-27 04:03:14