簡體   English   中英

與Apache .htaccess RewriteRule斗爭

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM