Htaccess修改重写不起作用(_R)

时间:2015-03-13 作者:benomatis

我正在粘贴我的完整htaccess文件,为了清晰起见,老实说,我不完全确定是否必须在<IfModule mod_rewrite.c> 零零碎碎的或单独的(下面——我在什么地方见过)。

<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /

#redirect index to homepage
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

#prevent hotlinking
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\\.)?www.example.com [NC]
RewriteRule \\.(jpg|jpeg|png|gif)$ - [NC,F,L]

#redirect galleries to portfolio
RewriteRule ^galleries/(.*)$ /portfolio/$1 [R=301,NC,L]

#prevent access to wp-config
<files wp-config.php>
 order allow,deny
 deny from all
</files>
</IfModule>
相关位如下:

#redirect galleries to portfolio
RewriteRule ^galleries/(.*)$ /portfolio/$1 [R=301,NC,L]
现在,如果我去http://subdomain.example.com/galleries/headshots/ 我希望它重定向到http://subdomain.example.com/portfolio/headshots/, 但实际上什么都没发生。

我甚至尝试了以下方法(在源和目标的末尾添加斜杠):

#redirect galleries to portfolio
RewriteRule ^galleries/(.*)$/ /portfolio/$1/ [R=301,NC,L]
还请注意,我使用的是子域,但我不认为这是一个问题。

是否L 上述指令中的位是否计数?我理解这些都是为了告诉脚本以后停止执行任何东西。

1 个回复
最合适的回答,由SO网友:benomatis 整理而成

通过一些帮助(也被问到了,因为这不是一个严格的WP问题)和一些测试,以下内容最终对我有效(在$ 签名):

RewriteRule ^galleries/(.*)/$ /portfolio/$1 [R=301,NC,L]
由于库是实际的目录,而不是文件,因此它们的末尾有一个斜杠:

http://subdomain.example.com/galleries/headshots/
                                        Here ---^

结束

相关推荐

.htaccess help to a beginner

我制作了一个自定义页面模板,并创建了一个设置为使用自定义页面模板的新页面。我的自定义页面URL现在是:www.domain。否/属性该网站将有3种不同类型的物业类型(办公室、商店和公寓),我希望这些URL(startpage上的3个自定义按钮)将指向同一个自定义页面:www.domain。否/物业/办公室->www.domain。否/属性www.domain。否/属性/店铺->www.domain。否/属性www.domain。否/属性/代理->www.domain。否/属性然后,我将从