.htaccess无法在服务器上运行

时间:2017-01-03 09:31:57

标签: .htaccess codeigniter hosting

我已将网站托管为"http://www.sitename.com/projectfoldername/"等子文件夹。 这里只显示主页,当点击任何菜单时显示404错误,所以我通过在控制器名称之前编写index.php来改变url,现在url已经从这里改变了: "http://www.sitename.com/projectfoldername/controller-name/function-name"对此:"http://www.sitename.com/projectfoldername/index.php/controller-name/function-name"然后显示页面但仅在本地工作..

我的htaccess文件

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?/$1 [L]
</IfModule>

的config.php

$config['base_url'] = 'http://www.sitename.com/projectfoldername/';
$config['index_page'] = '';
$config['uri_protocol'] = 'REQUEST_URI';

4 个答案:

答案 0 :(得分:1)

如果您使用的是Apache Web Server,请激活您的mod_rewrite

在Ubuntu上:

sudo a2enmod rewrite

在窗口:

打开httpd.conf并找到行

#LoadModule rewrite_module modules/mod_rewrite.so and remove the hash ‘#’

答案 1 :(得分:0)

RewriteBase /projectfoldername文件中使用.htaccess,如下所示:

RewriteEngine On
RewriteBase /projectfoldername
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [L]

答案 2 :(得分:0)

尝试在.htaccess中添加以下内容,它可能对您有帮助。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

答案 3 :(得分:0)

@antroo ghosh,首先你必须知道哪个Web服务器正在使用(Apache或IIS)。

如果您使用的是Windows(IIS)服务器,则无法使用.htaccess,在IIS中,您必须使用web.config而不是.htaccess。

有关详细信息https://www.iis.net/learn/application-frameworks/install-and-configure-php-applications-on-iis/translate-htaccess-content-to-iis-webconfig

我希望这可以帮助你!