首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用.htaccess mod_rewrite在路径开头插入脚本名称

问使用.htaccess mod_rewrite在路径开头插入脚本名称
EN

Stack Overflow用户
提问于 2010-11-03 03:50:30
回答 2查看 841关注 0票数 0

我有一个关于htaccess url重写的问题,它在本地主机上工作得很好,但在我的主机(一个主机)上却不起作用。

我需要将所有请求重定向到我的index.php页面。下面是一个示例:我将重定向

代码语言:javascript
复制
http://mydomain.com/this/is/a/page

至

代码语言:javascript
复制
http://mydomain.com/index.php/this/is/a/page

这是我的.htaccess:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

在主机上,我总是被重定向到index.php文件,但是$1参数总是空的,所以我的自定义框架无法正确处理请求。

可能的问题是什么?

很抱歉我的英语不好,我希望我已经说得足够清楚了。

EN

回答 2

Stack Overflow用户

发布于 2010-11-03 04:03:03

听起来像是远程服务器关闭了AcceptPathInfo。该设置对您正在使用的效果负责。

尝试手动请求

代码语言:javascript
复制
http://mydomain.com/index.php/this/is/a/page

如果this/is/a/page消失了,那么该选项肯定是关闭的,并且您不能在远程服务器上使用此方法(除非您可以更改其配置)。

在这种情况下,我会将规则更改为

代码语言:javascript
复制
RewriteRule ^(.*)$ index.php?path=$1 [L,QSA]

并将框架更改为侦听$_GET["path"]而不是$_SERVER["PATH_INFO"]。

票数 1
EN

Stack Overflow用户

发布于 2010-11-03 04:05:28

您是否在Apache配置文件中启用了mod-rewrite。

代码语言:javascript
复制
sudo nano /etc/apache2/sites-available/default
sudo nano /etc/apache2/sites-enabled/000-default

这里有一个网站,向你展示了几种方法。我已经通过修改上面的文件完成了mod-rewrite,但我认为还有其他方法。

http://drupal.org/node/134439

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4081545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档