2014-02-18 28 views
0

我想更新URL以顯示文件夾名稱而不是單個文件。 我相信這可以使用mod_rewrite,但我似乎無法得到它的工作。這是在本地網絡設備上,而不是公共服務器。 PHP是版本4mod_rewrite查詢。將文件更改爲文件夾

運行:

<?php 
print_r(apache_get_modules()); 
?> 

我得到:

Array 
(
    [0] => core 
    [1] => mod_access 
    [2] => mod_auth 
    [3] => mod_include 
    [4] => mod_log_config 
    [5] => mod_env 
    [6] => mod_setenvif 
    [7] => mod_ssl 
    [8] => prefork 
    [9] => http_core 
    [10] => mod_mime 
    [11] => mod_status 
    [12] => mod_autoindex 
    [13] => mod_asis 
    [14] => mod_cgi 
    [15] => mod_negotiation 
    [16] => mod_dir 
    [17] => mod_imap 
    [18] => mod_actions 
    [19] => mod_userdir 
    [20] => mod_alias 
    [21] => mod_rewrite 
    [22] => mod_so 
    [23] => sapi_apache2 
) 

這表明mod_rewrite的啓用。

我的目錄結構是: 10.10.10.1/local/accounts/payments

在國際收支我numberous .PHP文件,而不是每一個表現爲在地址欄中filename.php,我倒是更願意只顯示http://10.10.10.1/local/accounts/payments

在付款文件夾我創建了一個的.htaccess文件,其中包括:

RewriteEngine on 
RewriteRule ^*\.php$ /local/accounts/payments 

但地址欄中沒有任何變化。任何人都可以提醒我做錯了什麼。

感謝

UPDATE

對不起,我不認爲我已經很清楚了。

我想改變

http://10.10.10.1/local/accounts/payments/bacs.php 

http://10.10.10.1/local/accounts/payments 

或支付任何PHP文件只顯示支付的文件名。

感謝

回答

0

如果我理解正確的,你想要的網址

http://10.10.10.1/local/accounts/payments/rent 

重寫到

http://10.10.10.1/local/accounts/payments/rent.php 

在這種情況下:

RewriteRule ^local/accounts/payments/(.*)$ local/accounts/payments/$1.php 
+0

嗨。反過來。 'http:// 10.10.10.1/local/accounts/payments/rent.php'重寫爲'http:// 10.10.10.1/local/accounts/payments/rent'或者如果可能的話重寫爲http://10.10 .10.1/local/accounts/payments'謝謝 – Rocket

0

給這一個嘗試你的htaccess文件E,

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^local/accounts/payments/([^/]+)$ /local/accounts/payments/$1.php [NC,L] 

爲了澄清,如果你想這個網址下面在地址欄中

http://10.10.10.1/local/accounts/payments/somefilename 

然後上面的規則應該工作表現。如果付款實際上是一個文件,即payments.php,那麼它會使用這個規則。

RewriteEngine On 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule ^local/accounts/([^/]+)$ /local/accounts/$1.php [NC,L] 
+0

嗨,這會隱藏地址欄中的文件名嗎? – Rocket

+0

@ user214292是的,它的確如此。 –

+0

嗨,我打電話'http:// 10.10.10.1/local/accounts/payments/bacs.php'我想要顯示的地址是 'http://10.10.10.1/local/accounts/payments ' – Rocket