【问题标题】:rewriting url in .htaccess with a wordpress用wordpress重写.htaccess中的url
【发布时间】:2018-01-09 12:03:34
【问题描述】:

我想在名为https://greennutritionguides.dk 的网站上更改这些网址。我发现这可以通过重写 .htaccess 文件来完成。但是到目前为止,我在堆栈和其他站点上找到的内容都没有成功。

我想更改这些网址:

greennutritionguides.dk/shop-4/ 到 greennutritionguides.dk/shop

和 greennutritionguides.dk/services-2/ 到 greennutritionguides.dk/service

greennutritionguides.dk/member-receipes-2/ 到 greennutritionguides.dk/opskrifter

这个网站是一个 wordpress 网站,有一个 .htaccess 文件,看起来像这样:

## EXPIRES CACHING ##
#<IfModule mod_expires.c>
#ExpiresActive On
#ExpiresByType image/jpg "access 1 year"
#ExpiresByType image/jpeg "access 1 year"
#ExpiresByType image/gif "access 1 year"
#ExpiresByType image/png "access 1 year"
#ExpiresByType text/css "access 1 month"
#ExpiresByType text/html "access 1 month"
#ExpiresByType application/pdf "access 1 month"
#ExpiresByType text/x-javascript "access 1 month"
#ExpiresByType application/x-shockwave-flash "access 1 month"
#ExpiresByType image/x-icon "access 1 year"
#ExpiresDefault "access 1 month"
#</IfModule>
## EXPIRES CACHING ##
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

RewriteRule    ^shop-4/$    shop   

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

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

【问题讨论】:

    标签: wordpress .htaccess url url-rewriting


    【解决方案1】:

    将以下代码放在.htaccess 的开头,然后放在其他所有内容之前

    Redirect 301 https://greennutritionguides.dk/shop-4/ https://greennutritionguides.dk/shop
    Redirect 301 https://greennutritionguides.dk/services-2/ https://greennutritionguides.dk/service
    Redirect 301 https://greennutritionguides.dk/member-receipes-2/ https://greennutritionguides.dk/opskrifter
    

    【讨论】:

    • 我已经尝试使用您提供的代码,即使我将它放在其他所有内容之前,也没有任何事情发生。它仍然使用相同的网址。
    【解决方案2】:

    请按照步骤重定向网址

    第 1 步:备份您的 .htaccess 文件

    第 2 步:将整个 .htaccess 文件替换为以下代码并保存。

    #BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule ^shop-4(/.*)?$ https://greennutritionguides.dk/shop/ [L,R=301,NC]
    RewriteRule ^services-2(/.*)?$ https://greennutritionguides.dk/service/ [L,R=301,NC]
    RewriteRule ^member-receipes-2(/.*)?$ https://greennutritionguides.dk/opskrifter [L,R=301,NC]
    RewriteBase /gdk/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /gdk/index.php [L]
    </IfModule>
    #END WordPress
    

    第 3 步:清除浏览器的缓存,然后检查。

    您也可以参考301 redirect not working via .htaccess within WordPress

    【讨论】:

    • 感谢您提供帮助 :) 但是这不起作用,我收到以下消息: 内部服务器错误 服务器遇到内部错误或配置错误,无法完成您的请求。请通过 [no address given] 联系服务器管理员,告知他们此错误发生的时间,以及您在此错误之前执行的操作。服务器错误日志中可能会提供有关此错误的更多信息。
    • 您使用的是 "RewriteRule . /index.php [L]" 还是 RewriteRule 。 /gdk/index.php [L]?请告诉我,基于此,我可以提出解决方案
    • 不确定你的意思是不是我目前拥有的,但正如你在我的原始代码中看到的那样,我有 RewriteRule ^index\.php$ - [L] RewriteRule 。 /index.php [L] 重写规则。 /gdk/index.php [L] 我假设你的意思是最后一个:)
    猜你喜欢
    • 2013-08-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    相关资源
    最近更新 更多