在一个htaccess文件中处理两个重定向

时间:2016-04-29 07:46:50

标签: .htaccess redirect

在我的域中,我有htaccess文件来创建重写。现在,我正在将我的域名重写为其他URL,如下所示,

RewriteEngine on

RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteRule ^(.*)$ http://example2.com:8080/$1 [P]

现在我想让example.com/desc重写example2.com:8080中的某个文件夹。现在我的htaccess看起来如下,

RewriteEngine on

RewriteCond %{HTTP_HOST} ^example\.com$ 
RewriteRule ^(.*)$ http://example2.com:8080/$1 [P]

RewriteCond %{HTTP_HOST} ^example\.com/desc$ 
RewriteRule ^(.*)$ http://example2.com:8080/myapp$1 [P]

我在点击example.com/desc时遇到404错误。

如何使用这两种方法。

修改

按照以下方式回答anubhava的回答

RewriteEngine on

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(desc(?:/.*)?)$ http://example2.com:8080/myapp/$1 [P,NC]

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://example2.com:8080/$1 [P]

example.com运行正常。但example.com/desc显示以下错误404错误,错误消息中也添加了desc

HTTP Status 404 - /myapp/desc

1 个答案:

答案 0 :(得分:0)

根据上述评论,您可以尝试以下规则:

RewriteEngine on

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^desc(/.*)?$ http://example2.com:8080/myapp$1 [P,NC]

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://example2.com:8080/$1 [P]

你可以