我有一个关于htaccess url重写的问题,它在本地主机上工作得很好,但在我的主机(一个主机)上却不起作用。
我需要将所有请求重定向到我的index.php页面。下面是一个示例:我将重定向
http://mydomain.com/this/is/a/page至
http://mydomain.com/index.php/this/is/a/page这是我的.htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]在主机上,我总是被重定向到index.php文件,但是$1参数总是空的,所以我的自定义框架无法正确处理请求。
可能的问题是什么?
很抱歉我的英语不好,我希望我已经说得足够清楚了。
发布于 2010-11-03 04:03:03
听起来像是远程服务器关闭了AcceptPathInfo。该设置对您正在使用的效果负责。
尝试手动请求
http://mydomain.com/index.php/this/is/a/page如果this/is/a/page消失了,那么该选项肯定是关闭的,并且您不能在远程服务器上使用此方法(除非您可以更改其配置)。
在这种情况下,我会将规则更改为
RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]并将框架更改为侦听$_GET["path"]而不是$_SERVER["PATH_INFO"]。
发布于 2010-11-03 04:05:28
您是否在Apache配置文件中启用了mod-rewrite。
sudo nano /etc/apache2/sites-available/default
sudo nano /etc/apache2/sites-enabled/000-default这里有一个网站,向你展示了几种方法。我已经通过修改上面的文件完成了mod-rewrite,但我认为还有其他方法。
https://stackoverflow.com/questions/4081545
复制相似问题