0

我在 .htaccess 文件中为我的网站页面编写了重写规则:

RewriteRule ^nice_url/$  ?p_action=user_profile&post_author=45 [L]

完整链接是:“ http://www.example.co.il/nice_url/ ”它完美无缺。

但是,当我尝试创建站点地图(例如使用http://www.web-site-map.com/)时,我有一个迹象表明链接“ http://www.example.co.il/nice_url/ “ 被打破。

为什么?

该链接工作正常。为什么显示为损坏?

谢谢!

4

2 回答 2

1

您可以添加另一个规则以将长 URL 外部重定向到漂亮的 URL,如下所示:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+\?p_action=user_profile&post_author=45\s [NC]
RewriteRule ^ nice_url? [R=301,L]

更新:好吧,我检查了站点地图生成器是放在&而不是&在生成的 URL 中。

您需要添加此附加规则来处理此问题:

# convert & to &
RewriteCond %{QUERY_STRING} ^(.*)&(.*)$ [NC]
RewriteRule ^ %{REQUEST_URI}?%1&%2 [L,R,NE]
于 2013-09-18T11:51:55.040 回答
0

似乎我发现了问题:

我有一个主要的 .htaccess 文件,它重定向到 3 个不同的文件夹。每个文件夹用于不同的网站(都在同一主机中)。

其中一个网站在 WP 中。重写发生得很好。

但是,当我尝试生成站点地图时 - wp 为站点地图生成器返回 404,这就是我收到错误的原因。

解决方案:我可能会尝试从 php 而不是从 htaccess 重写。

于 2013-09-24T09:04:13.723 回答