是否可以使用htaccess隐藏hancoded index.php

时间:2013-09-23 12:08:00

标签: php .htaccess

我的网站上有很少的编码链接,有些像这样

<li><a href="<?php echo $url.'/index.php/bla/bla1'?>"><span>Bla bla bla</span></a></li>

我的问题是?是否可以使用.htaccess(将其置于根文件夹中)删除thoose index.php,方法是将其写入其中

<IfModule mod_rewrite.c>
    RewriteEngine On

    # Removes index.php from ExpressionEngine URLs
    RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]
</IfModule>

2 个答案:

答案 0 :(得分:0)

你可以用jQuery做,检查每个href属性以匹配你的模式,然后改变它。它不是那么漂亮,但无论如何,如:

$.each($('a') , function(key , value){
...

在此处定义您的模式并更改网址...

$(value).attr('href' , newHref);
});

答案 1 :(得分:0)

是的,你删除了“.htaccess”中的“index.php”。

在我的一个yii网站中,我发现了这个,首先在本地测试...

RewriteEngine on
# redirect www to non-www (http & https)
RewriteCond %{HTTPS} off
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond %{HTTPS} on
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php