首页 > 解决方案 > 如何为特定文件夹编写异常

问题描述

我的任务是修改 .htaccess 文件中对移动站点的重定向,以仅重定向主页。问题是主文件夹包含许多子文件夹,这些子文件夹是它们自己的页面,并且它们错误地重定向到主站点移动版本。

这是代码:

 RewriteOptions inherit
<IfModule mod_expires.c>
ExpiresActive On
#ExpiresDefault "access plus 10 second"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/x-javascript "access plus 1 month"
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"
# Webfonts
ExpiresByType application/vnd.ms-fontobject         "access plus 1 year"
ExpiresByType font/eot                              "access plus 1 year"
ExpiresByType font/opentype                         "access plus 1 year"
ExpiresByType application/x-font-ttf                "access plus 1 year"
ExpiresByType application/font-woff                 "access plus 1 year"
ExpiresByType application/x-font-woff               "access plus 1 year"
ExpiresByType font/woff                             "access plus 1 year"
ExpiresByType application/font-woff2                "access plus 1 year"
</IfModule>

<filesMatch ".(js)$">
Header set Cache-Control "max-age=2592000, public"
</filesMatch>

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

#### MOBILE REDIRECTION START

RewriteBase /

# Check if m=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^|&)m=1(&|$)
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}]

# Check if m=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^|&)m=0(&|$)
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}]

# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ - [S=1]

# Check if this looks like a mobile device

# Check if we're not already on the mobile site
# Check to make sure we haven't set the cookie before
# Now redirect to the mobile site
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC,OR]
RewriteCond %{HTTP:Profile}       !^$
RewriteCond %{HTTP_HOST}          !^m\.
RewriteCond %{HTTP:Cookie}        !\mobile=0(;|$)
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^ http://m.siteurl.com [R,L]

#### MOBILE REDIRECTION END

有人可以帮我在哪里以及如何放置除主要文件夹(站点)之外的文件夹(站点)的例外情况。

标签: html.htaccessredirect

解决方案


感谢你的回答。我会再澄清一点。我在主机上创建了一个新站点,其中包含许多其他(更老的)站点。当我试图从我的手机进入该站点时,我意识到它被重定向到该“主站点”的移动站点。我查看了 public_html 文件夹并意识到很久以前有人在 public_html 文件夹中创建了一个站点,并在 .htaccess 中进行了重定向,然后其他人创建了许多与其他站点的子文件夹,包括我创建的站点的子文件夹和上传到他们的服务器。现在的问题是子文件夹中的那些站点被重定向到在主 public_html 文件夹中创建的站点的移动站点。

回答“旁白”部分——这不是我的网站,我相信这也是t. It is a very old site that needs a complete rehaul. Rewrite options inherit - that我的问题。我m not sure, as I不是创造者。这完全是一团糟,但现在我只需要解决重定向问题。

我希望能澄清一点。

编辑:似乎删除Rewrite options inherit成功了。现在只有主站点被重定向到移动版本。


推荐阅读