0

我有这个网站

http://cjbuilders.info/welcome/home

所有的链接都以

http://cjbuilders.info/welcome

我如何使用 mod_rewrite 来删除

/欢迎/

从网址?这应该是一个简单的,但我与 mod_rewrite 斗争。

4

2 回答 2

1

这应该有效,IIRC:

RewriteRule ^/welcome/(.*)$ /$1 [R]

但是,猜测一下这里发生了什么,如果这个前缀的原因类似于 Java 应用程序服务器在称为“欢迎”的上下文中部署应用程序,那么更好的解决方案不是重写 URL,而是修复后端应用服务器有一个空上下文,即服务于 / 而不是 /welcome/。

这是因为应用服务器可能想要生成指向其应用的其他视图的链接,并且会重新插入“欢迎”:这会变得很痛苦,并且意味着您页面上的所有链接在访问时都会获得 HTTP 重定向(例如,通过搜索引擎)。代理 apache 服务器无法解析 HTML 并告知何时应该删除“欢迎”,因此最好首先修复正在编写链接的服务器。

于 2011-01-31T22:47:56.753 回答
1

你知道CodeIgniter 的 URI Routing吗?将此添加到您的 routes.php 配置文件中,它应该可以正常工作:

$route['home'] = 'welcome/home';
于 2011-02-11T01:06:30.997 回答