2014-02-18 29 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