.htaccess 301重定向问题?

.htaccess 301重定向问题?,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,这是将页面重定向到另一个域页面的qood示例: RewriteCond %{HTTP_HOST} ^dejan.com.au$ [OR] RewriteCond %{HTTP_HOST} ^www.dejan.com.au$ RewriteRule ^seo_news_blog_spam\.html$ "http\:\/\/dejanseo\.com\.au\/blog\-spam\/" [R=301,L] 或是好的老作品: 301 redirect seo_news_blog_spam.ht

这是将页面重定向到另一个域页面的qood示例:

RewriteCond %{HTTP_HOST} ^dejan.com.au$ [OR]
RewriteCond %{HTTP_HOST} ^www.dejan.com.au$
RewriteRule ^seo_news_blog_spam\.html$ "http\:\/\/dejanseo\.com\.au\/blog\-spam\/" [R=301,L]
或是好的老作品:

301 redirect seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/

那么有什么区别呢?

据推测,这些规则在功能上是等价的(好吧,假设
http://dejanseo.com.au/blog/spam/
应该是
http://dejanseo.com.au/blog-spam/
像第一个一样重定向到,唯一指向该位置的主机是
dejanseo.com.au
,有或没有
www

第一个示例使用来自的指令,而第二个示例使用一些来自的指令。我认为,对于这种特殊情况,首选的选项是第二个,这不仅仅是因为它稍微简单一点(创建由
mod_rewrite
使用的正则表达式也会带来额外的边际开销,但这非常小):

但是,我怀疑您拥有第一个的原因是它是使用CPanel创建的(基于之前在另一个用户的问题中出现的替换中不必要的转义,其中指出CPanel是罪魁祸首)他们选择了
mod_rewrite
选项,因为它提供了
Redirect
指令所没有的条件灵活性,我认为这种灵活性在某种程度上反映在用于创建这些规则的任何接口中

您将注意到,在第一个示例中,有一个关于是否基于主机名重定向的条件,由
RewriteCond
标识。这允许您执行基于请求路径以外的更强大的重定向。请注意
mod_rewrite
还允许内部重定向对于用户而言,
mod_alias
不是为其设计的,但这不是此处使用的容量


最后,从技术上讲,
RewriteCond
语句中的主机名应该进行点转义,因为
字符在正则表达式中有特殊的含义。您也可以将它们组合在一起,将它们更改为或完全删除(因为我认为它们在这里没有任何用处).

不可信,问题在于synthax不正确,因此:

redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/
应该是这样的:

Redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/
第一封大信是所有麻烦的根源,真是浪费时间 它现在可以正常工作了!
感谢所有参与的人,问题得以解决。

我忘了包括最重要的内容,那就是seo_news_blog_spam.html文件需要重定向到另一个域URL。提到的技术是否可以重定向到另一个域,而不仅仅是重定向到本地URL?@purpler-Yep。对于
重定向和
RewriteRule
,您可以放置一个完全限定的URL作为替换,以重定向到另一个域。请注意,如果域指向同一服务器和文档根,您将需要使用
重写规则
+
重写条件
版本,因为在该场景中需要进行主机检查以避免重定向循环。
Redirect 301 seo_news_blog_spam.html http://dejanseo.com.au/blog/spam/