1

我重建了一个网站,该网站使用一些自定义 php 来提供带有如下网址的单个商店页面:

http://thedomain.com/storedetails.php?storeNum=1

新站点由 Wordpress 提供支持,每个单独的商店都将存在于一个命名的子目录中,如下所示:

http://thedomain.com/stores/gothamcity

我一直在尝试在stackoverflow上找到的解决方案,这些解决方案似乎都是对此的变体:301 Redirect of old url with parameters to a path without parametes

这是一个例子:

RewriteCond %{QUERY_STRING} ^storeNum=18$ [NC]
RewriteRule ^/storedetails\.php$ http://www.thedomain.com/stores/gothamcity? [L,R=301]

但到目前为止,没有任何效果。我继续在 Wordpress 中收到“找不到页面”404 错误页面。

我最好的猜测是,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

1 回答 1

1

这应该有效:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^storeNum=18$ [NC]
RewriteCond %{HTTP_HOST} .*
RewriteRule ^storedetails\.php http://www.thedomain.com/stores/gothamcity? [L,R=301]

RewriteRule ^index\.php$ - [L]

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

我建议您使用 RewriteMap 将商店编号映射到名称。

于 2012-07-18T05:13:09.337 回答