[英]Struggling with Apache .htaccess RewriteRule
我目前正在Wordpress中重做我的一个网站。 我进行测试时,此安装当前位于wwww.mydomain.com/wordpress中。
在我的主要网站上,请求是这样发送的: http : //www.mydomain.com/index/newsid/16589/some-text-here-that-is-relevant
位于http://www.mydomain.com/.htaccess的.htaccess当前看起来像这样:
Options +FollowSymLinks
RewriteEngine on
RewriteBase /
RewriteRule index/newsid/(.*) index.php?newsid=$1
RewriteEngine On
我目前位于www.mydomain.com/wordpress/.htaccess的我的Wordpress .htaccess如下
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
# END WordPress
当我迁移网站时,来自其他站点的所有链接都将断开,我已将所有文章合并到论坛的存档中的其他位置。 我需要有效地做两件事,将我的.htaccess文件移动到我网站的根目录后,然后将其重定向到其他地方。
从本质上讲,我想转一下: http : //www.mydomain.com/index/newsid/16589/some-text-here-that-is-relevant
进入: http : //www.mydomain.com/forums/index.php? showtopic= 16589
它们的主要ID在这里是16589,它是一个变量,可以更改。
任何帮助将不胜感激,我可以做简单的.htaccess文件,但这超出了我的范围。
将wordpress安装移至文档根目录后,您需要在 wordpress规则之前添加一些规则。 您需要在文档根目录的htaccess文件中执行以下操作:
Options +FollowSymLinks
RewriteEngine on
# redirect your newsid
RewriteRule ^index/newsid/([0-9]+)/ /forums/index.php?showtopic=$1 [L,QSA,R]
# here are the wordpress rules
# 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
如果要改为301重定向,则将[L,QSA,R]
替换为[L,QSA,R=301]
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.