我有下一个规则,我应该可以毫无问题地访问这些网址:
domain.com/robots.txt
- 应该将我重定向到 - > domain.com/sitemapHT/robots.txt
现在robots.txt有一个xmls文件索引,该站点不同部分的站点地图在哪里写入其站点地图。例如:domain.com/sitemapHT/sitemap_anuciantes.xml
使用当前规则(如下)当我尝试访问任何/robots.txt或sitemapHT网址时,它会将我发送到domain.com /
规则还会从我们拥有的旧/portal/index.action
网址重定向到新的/
您能否帮我修改规则以正确访问以前的网址?
<VirtualHost *:80>
ServerAdmin administracion.linux@yellargentina.com
DocumentRoot "/opt/tomcat-5.5.30/webapps/portal"
ServerName hoteles.t1.yellargentina.com
ServerAlias hoteles.t1.yellargentina.com
CustomLog /tmp/hoteles-access_log combined
ErrorLog /tmp/hoteles-error_log
RewriteLog /tmp/hoteles-rewrite_log
RewriteLogLevel 3
JkUnMount /images/*.gif w1
JkUnMount /images/*.png w1
JkUnMount /images/*.jpg w1
JkUnMount /js/*.js w1
JkUnMount /styles/*.css w1
JkMount /portal w1
JkMount /portal/* w1
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]
Options +FollowSymlinks
##
# Originales
##
##
RewriteRule ^/robots.txt /sitemapHT/robots.txt [R=301]
RewriteCond $1 !^/(sitemapHT/|portal/)
##
#RewriteRule ^/$ /portal/ [R]
#RewriteRule ^/(?!portal)(.*) /portal/ficha.action/$1 [PT]
RewriteRule ^/$ /portal/index.action [PT]
RewriteRule ^/portal/index.action / [R]
RewriteRule ^/(?!portal)(.*) /portal/ficha.action/$1 [PT]
</VirtualHost>
谢谢!
答案 0 :(得分:1)
这两行一起没有多大意义:
RewriteCond $1 !^/(sitemapHT/|portal/)
RewriteRule ^/robots.txt /sitemapHT/robots.txt [R=301]
这一行将完成重写工作(如果您想将R=301,
)L
旁边的domain.com/robots.txt
重定向到domain.com/sitemapHT/robots.txt
:
RewriteRule ^robots\.txt$ /sitemapHT/robots.txt [L]
P.S。您重写日志(问题正文中的最后一个代码块)是不可读的。请正确格式化。
P.P.S。如果您的.htaccess中有其他规则,则可能会影响此重写规则。如果你提供整个.htaccess,如果这个不起作用,那就更好了。
<强>更新强>
1。不需要这一行:RewriteCond $1 !^/(sitemapHT/|portal/)
,尤其是在重写规则之后。
2。这两行做什么?
RewriteRule ^/$ /portal/index.action [PT]
RewriteRule ^/portal/index.action / [R]
至于我 - 他们做了相反的工作。但如果它有效,那么我就不会碰它了。
尝试这些重写规则:
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F,L]
RewriteRule ^/robots.txt /sitemapHT/robots.txt [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\s/portal/index.action\sHTTP/.+
RewriteRule ^/portal/index.action$ / [R,L]
RewriteRule ^/$ /portal/index.action [PT,L]
RewriteRule ^/(?!portal|sitemapHT)(.*) /portal/ficha.action/$1 [PT,L]