2015-02-11 59 views
0

修复了它。在文件上做了一些小改动。它可以在下面看到。.htaccess文件无法正常使用path_info和/或获取方法

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule (.*) index.php?$1 [NC,QSA,L] 

我一直在尝试了一整天来解决我遇到的问题。我有一个简单的重写的URL就像

http://example.com/about/?req=true 
http://example.com/index.php/about/?req=true 

它工作在我的本地没有问题,这个.htaccess文件,但是当我把它上传到服务器,我得到这个“没有输入文件中指定的”错误。您可以在下面看到.htaccess文件的内容。

RewriteEngine on 

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

我尝试不同的事情,我在互联网包括添加php.ini文件这台cgi.fix_pathinfo 1上发现的,但他们没有工作,除了一个和一个不读取请求字符串。你可以在下面看到。

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

在此先感谢。

+0

你想重写'http://example.com/about/?req = true'到 'http://example.com/index.php/about/?req = true'?一个文件下面的目录怎么能工作(甚至在一个语言环境机器上)?它不应该是这样的吗? 'http://example.com/about/index.php?req = true'或者像这样的'http://example.com/index.php?req = true&page = about'? – serjoscha 2015-02-11 12:28:34

+0

@serjoscha我认为你错了。我在这里要做的是使用$ _SERVER ['path_info']以更好的方式处理用户友好的网址。 – 2015-02-11 12:30:50

回答

-1

首先关闭所有检查阿帕奇重写模块是否启用或不 如果启用然后ü可以在URL

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase /base_directory_name/ 
    RewriteRule ^index\.php$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /base_directory_name/index.php [L] 
</IfModule> 

使用此代码隐藏的index.php与我认为这将帮助ü。