重定向目录的内容,但不重定向目录本身及其某些子目录和文件

时间:2015-11-15 02:51:16

标签: .htaccess mod-rewrite redirect httpd.conf

我们将配置文件的网址从example.com/category/profile/简化为example.com/profile等等(包括自动删除所有尾部斜杠 - 请参阅Vanity URLs without trailing slashes),我们现在需要重定向绑定旧URL的所有入站链接。我们通过以下代码找到了一种方法(它还排除了我们需要保留的文件和目录)。

RewriteCond %{REQUEST_URI} !^/category/index [NC] #Excludes /category/index.html from redirect
RewriteCond %{REQUEST_URI} !^/category/images [NC] #Excludes /category/images/ from redirect
RewriteCond %{REQUEST_URI} !^/category/menu [NC] #Excludes /category/menu/ from redirect
RewriteRule ^category/(.+[^/]) /$1 [R=301,NC,L]

但这只有在我们保留包含我们个人资料的所有原始目录时才有效;如果我们删除这些目录,重定向将不再有效。我们尝试了下面的内容,但这没有帮助。

RewriteCond %{REQUEST_URI} !^/category/index [NC]
RewriteCond %{REQUEST_URI} !^/category/images [NC]
RewriteCond %{REQUEST_URI} !^/category/menu [NC]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^category/(.+[^/]) /$1 [R=301,NC,L]

我们正在研究使用RedirectMatch(下面的代码)执行此操作的替代方法(并且更简单),但我们没有找到一种方法来排除我们需要保留的目录,这也没有删除任何尾随斜杠原始的入站链接。

RedirectMatch 301 ^/category/(.*)$ /$1

1 个答案:

答案 0 :(得分:1)

尝试:

    var layerSource = {
           user_name: '[YOUR USERNAME]',
           type: 'cartodb',
           cartodb_logo: true,
           sublayers: [{
                sql: "SELECT * FROM **your table** WHERE xxx LIKE 'sample'" 
                },
                {
                sql: "SELECT * FROM winston_survey_tool WHERE point_class LIKE 'Survey point'"
                }]
               };