如何使用mod_rewrite向URL添加其他单词

时间:2012-02-15 09:43:00

标签: apache mod-rewrite url-rewriting

我的应用程序包含以下URL:

https://www.domain.com/example/public/subscription
https://www.domain.com/example/public/subscription/source
https://www.domain.com/example/public/test/subscription

我想使用mod_rewrite(或其他方法)通过删除/public/部分来创建上述URL的更短“别名”,以便我可以为我的客户端提供这些较短版本的URL:

https://www.domain.com/example/subscription
https://www.domain.com/example/subscription/source
https://www.domain.com/example/test/subscription

换句话说,浏览https://www.domain.com/example/subscription时,例如:

  • 服务器必须发回与直接打开https://www.domain.com/example/public/subscription
  • 时相同的响应
  • 浏览器仍必须在地址栏中显示较短版本的网址(不含/public/

这是否可能,这样的RewriteRule会是什么样子?

提前谢谢。

2 个答案:

答案 0 :(得分:2)

将此.htaccess文件放在DocumentRoot

Options +FollowSymLinks -Indexes -MultiViews
RewriteEngine on
RewriteBase /

RewriteRule ^(example)/(.*)$ $1/public/$2 [NC,L]

答案 1 :(得分:-1)

你只想"删除" public关键字?

尝试此重写规则:

RewriteRule ^/example/public/(.*) /example/$1 [L]