Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 在子目录上运行Tumblr几乎成功_.htaccess_Redirect_Tumblr - Fatal编程技术网

.htaccess 在子目录上运行Tumblr几乎成功

.htaccess 在子目录上运行Tumblr几乎成功,.htaccess,redirect,tumblr,.htaccess,Redirect,Tumblr,我一直在使用一个微型代理从一个子目录运行Tumblr博客。我已经能够将Tumblog屏蔽为example.com/blog/,但我无法查看博客中的任何链接。我是一名设计师,花了一天的大部分时间研究这个问题。如果你们觉得这很愚蠢,我很抱歉。我的问题是为什么博客中的链接不起作用 这是我的.htaccess: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^blog\/?$ proxy.ph

我一直在使用一个微型代理从一个子目录运行Tumblr博客。我已经能够将Tumblog屏蔽为
example.com/blog/
,但我无法查看博客中的任何链接。我是一名设计师,花了一天的大部分时间研究这个问题。如果你们觉得这很愚蠢,我很抱歉。我的问题是为什么博客中的链接不起作用

这是我的.htaccess:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog\/?$ proxy.php?url=http://seo-services-greece.tumblr.com/$1?%

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresByType image/gif A2592000
    ExpiresByType image/jpeg A2592000
    ExpiresByType image/png A2592000
    ExpiresByType text/css A2592000
    ExpiresByType application/javascript A2592000
    #ExpiresDefault A2592000
</IfModule>

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/ecmascript
AddOutputFilterByType DEFLATE application/ecmascript
AddOutputFilterByType DEFLATE text/jscript

Header unset ETag
FileETag None

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^seoprojects.gr [nc]
rewriterule ^(.*)$ http://www.seoprojects.gr/$1 [r=301,nc]
<?php 

$from = "seo-services-greece.tumblr.com";
$unto = "seoprojects.gr/blog";

// Because Dreamhost doesn't do remote fopens, and to get content-type
function fetch($url) {
    $curl = curl_init();
    $timeout = 5; // set to zero for no timeout
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    $html = curl_exec($curl);
    $content_type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
    curl_close($curl);
    return array($html, $content_type);
}

list($html, $content_type) = fetch($_GET['url']);

// Fix root-relative links etc.
$html = preg_replace('/\b(href|src|rel)="\//', '$1="http://'.$unto.'/', $html);

// Fix the iframe-url
$html = str_replace("iframe?src=http://".$unto, "iframe?src=http://".$from, $html);

// fix audioplayer-url
$html = str_replace("audio_file=http://".$unto, "audio_file=http://".$from, $html);

// Replace the old URL with the new
$html = str_replace($from, $unto, $html);

header("Content-type: $content_type");
echo $html;

?>
重新编写引擎打开
重写基/
重写cond%{REQUEST_FILENAME}-F
重写规则^blog\/?$proxy.php?url=http://seo-services-greece.tumblr.com/$1?%
过期于
ExpiresByType图像/gif A2592000
过期按类型图像/jpeg A2592000
ExpiresByType图像/png A2592000
ExpiresByType文本/css A2592000
ExpiresByType应用程序/javascript A2592000
#到期默认A2592000
AddOutputFilterByType泄气文本/普通
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE应用程序/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE应用程序/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE应用程序/rss+xml
AddOutputFilterByType DEFLATE应用程序/atom\u xml
AddOutputFilterByType DEFLATE应用程序/x-javascript
AddOutputFilterByType DEFLATE应用程序/x-httpd-php
AddOutputFilterByType放气应用程序/x-httpd-fastphp
AddOutputFilterByType放气应用程序/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE应用程序/javascript
AddOutputFilterByType DEFLATE text/ecmascript
AddOutputFilterByType放气应用程序/ecmascript
AddOutputFilterByType DEFLATE text/jscript
标题未设置ETag
FileTag无
选项+FollowSymlinks
重新启动发动机
rewritecond%{http_host}^seoprojects.gr[nc]
重写规则^(.*)$http://www.seoprojects.gr/$1[r=301,北卡罗来纳州]
这是我的proxy.php:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog\/?$ proxy.php?url=http://seo-services-greece.tumblr.com/$1?%

<IfModule mod_expires.c>
    ExpiresActive on
    ExpiresByType image/gif A2592000
    ExpiresByType image/jpeg A2592000
    ExpiresByType image/png A2592000
    ExpiresByType text/css A2592000
    ExpiresByType application/javascript A2592000
    #ExpiresDefault A2592000
</IfModule>

AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/atom_xml
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/x-httpd-php
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
AddOutputFilterByType DEFLATE application/x-httpd-eruby
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE text/ecmascript
AddOutputFilterByType DEFLATE application/ecmascript
AddOutputFilterByType DEFLATE text/jscript

Header unset ETag
FileETag None

Options +FollowSymlinks
RewriteEngine on
rewritecond %{http_host} ^seoprojects.gr [nc]
rewriterule ^(.*)$ http://www.seoprojects.gr/$1 [r=301,nc]
<?php 

$from = "seo-services-greece.tumblr.com";
$unto = "seoprojects.gr/blog";

// Because Dreamhost doesn't do remote fopens, and to get content-type
function fetch($url) {
    $curl = curl_init();
    $timeout = 5; // set to zero for no timeout
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    $html = curl_exec($curl);
    $content_type = curl_getinfo($curl, CURLINFO_CONTENT_TYPE);
    curl_close($curl);
    return array($html, $content_type);
}

list($html, $content_type) = fetch($_GET['url']);

// Fix root-relative links etc.
$html = preg_replace('/\b(href|src|rel)="\//', '$1="http://'.$unto.'/', $html);

// Fix the iframe-url
$html = str_replace("iframe?src=http://".$unto, "iframe?src=http://".$from, $html);

// fix audioplayer-url
$html = str_replace("audio_file=http://".$unto, "audio_file=http://".$from, $html);

// Replace the old URL with the new
$html = str_replace($from, $unto, $html);

header("Content-type: $content_type");
echo $html;

?>
您的重写规则(模式)不正确--您有反向引用
$1
,但没有将用于
$1
的“catch group”。请使用以下行:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog/?$ proxy.php?url=http://seo-services-greece.tumblr.com/ [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog/(.+)$ proxy.php?url=http://seo-services-greece.tumblr.com/$1 [L]
第一条规则将处理
/blog
/blog/
,而第二条规则将处理
/blog/something

不幸的是,任何查询字符串都将丢失(例如
/blog/?ref=yahoo
)。要将其传递给proxy.php,请尝试在目标URL的末尾添加
?%{QUERY_STRING}
:例如
proxy.php?URL=http://seo-services-greece.tumblr.com/$1?%{QUERY_STRING}
——我不能保证它会像那样工作——它可能需要一些转义


更新: 您有两个重写规则块——一个位于.htaccess的最顶端,另一个位于最末端。您需要将它们从底部移动到顶部,并将它们置于proxy.php规则之前:

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

# force www. in domain name
RewriteCond %{HTTP_HOST} ^seoprojects.gr [NC]
RewriteRule ^(.*)$ http://www.seoprojects.gr/$1 [R=301,L]

# thumblr proxy rules
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog/?$ proxy.php?url=http://seo-services-greece.tumblr.com/ [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^blog/(.+)$ proxy.php?url=http://seo-services-greece.tumblr.com/$1 [L]

此规则:
RewriteRule^blog\/?$proxy.php?url=http://seo-services-greece.tumblr.com/$1?%
--我看不到
$1
的来源。请提供1到2个不起作用的URL(以及那些起作用的URL)示例。例如,有效,但结果是404。@user871896 1)如果你是Jacob Warren,请使用同一个帐户——看到其他人回复会很奇怪。2) 不要使用“回复”来发表您的评论——请改用“评论”功能。@user871896和/或Jacob Warren——请参阅我更新的答案。如果它工作(应该),然后考虑标记为接受。