在.htaccess中删除WP的代码会导致问题吗?

时间:2013-12-10 作者:handsofblue

我需要在我的网站上使用以下重定向:

RewriteEngine on
RewriteCond %{HTTP_HOST} name.com
RewriteCond %{REQUEST_URI} ^/(1[0-9]{3}|200[0-9]|201[0-3]) 
RewriteCond %{REQUEST_URI} !/2013/12 
RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$  http://v2.name.com/$1/$2/$3 [NC,R=301]
然而,只有当我删除Wordpress放在我的中的代码时,它才起作用。htaccess(我尝试将其放在这段代码之前和之后,但没有成功):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
如果我永久删除它,会导致什么样的问题?有什么办法吗?

4 个回复
最合适的回答,由SO网友:Pat J 整理而成

添加[L] 标记到[NC,R=301] 件(即,[NC,R=301,L]), 它告诉RewriteEngine,RewriteRule是RewriteConds、 显然解决了问题。

RewriteEngine on
RewriteCond %{HTTP_HOST} name.com
RewriteCond %{REQUEST_URI} ^/(1[0-9]{3}|200[0-9]|201[0-3]) 
RewriteCond %{REQUEST_URI} !/2013/12 
RewriteRule ^([0-9]{4})/([0-9]{2})/(.*)$  http://v2.name.com/$1/$2/$3 [NC,R=301,L]

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
参考ApacheURL Rewriting Guidemod_rewrite documentation (尤其是RewriteRule)

SO网友:Rarst

.htaccess WordPress生成的规则使其能够处理任意链接(指向现有文件的链接除外),这实际上意味着它们是实现永久链接功能所必需的。

如果没有它们,WP将发挥作用,但pretty permalinks功能将不可用,任何现有的pretty permalinks都将被破坏。

SO网友:Androliyah

对删除代码可能会导致无限循环。

SO网友:nur

如果不使用永久链接功能,请删除。htaccess文件不会导致任何问题。

结束

相关推荐

在没有.htaccess的情况下处理基于正则表达式的重定向

有没有办法从插件向wordpress添加重定向模式?我使用的主机为我设置wordpress,但不允许我访问文件系统,因此我无法编辑。htaccess文件。我发现了很多插件,它们允许您列出要重定向的URL,但我没有发现任何插件允许您插入基于正则表达式的模式。具体来说,我安装了一个“事件日历”插件,每天都有一页事件(无论那天是否有任何事件)。后来发布的插件将这些页面删除。现在它们都是404,我想把它们重定向到主事件页面。它们都是以下格式:2017-08-29/2017-08-23/2017-08-19/201