重写cond没有携带参数.htaccess

时间:2015-11-18 01:59:25

标签: apache .htaccess mod-rewrite url-rewriting

所以我有一个服务器,我有两个django项目,都在不同的子文件夹,所以我有 example.com/p1和example.com/p2

我需要当用户在example.com中输入时,他被重定向到example.com/p1但仍在example.com上重新播放。

所以我在.htaccess上使用以下代码执行了该操作。:

Options +FollowSymlinks
RewriteEngine On

RedirectMatch 301 ^$ http://example.com/p1/
RewriteRule ^$ /p1/?$ [L]

这样工作正常......对于主页但是当我转到子链接时说链接是这样的

<a href="/foo/">Foo</a>

当我点击它时,它会将我重定向到example.com/foo/ 我知道为什么这样做。有没有办法制定一个带有网址的规则?

所以说例如当用户访问链接example.com/foo/时,它转到了example.com/website/foo/但是对于用户来说它显示为example.com/foo/而没有具体名称规则上的网址,以便同样的规则说明了网址&#34; foo&#34;和&#34; bar&#34;?

1 个答案:

答案 0 :(得分:1)

这里不需要Redirect指令,只需使用mod_rewrite:

尝试:

RewriteEngine on

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

这会重写您的网址:

http://example.com

http://example.com/p1

http://example.com/foo

http://example.com/p1/foo