我重建了一个网站,该网站使用一些自定义的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
有人可以帮忙吗?
答案 0 :(得分: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将商店号码映射到名称。