【发布时间】:2017-01-04 05:42:19
【问题描述】:
我有一个这样的自定义 URL:
website.com/show/?id=9999&n=page-name
我正在尝试提出一个重写规则将其转换为:
website.com/show/9999/page-name/
请注意,这是一个 WordPress 网站,/show/ 是 WP 页面名称。
这是我在 .htaccess 中使用的规则:
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^show/(.*)$ /show/?id=$1 [R=301,NC,QSA]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
这是有效的;它将website.com/show/?id=9999 重写为website.com/show/9999/。
然后我修改了第二个查询字符串的规则:
RewriteRule ^show/(.*)/(.*)$ /show/?id=$1&n=$2 [R=301,NC,QSA]
但是现在website.com/show/9999/page-name/ 返回一个 404 错误。如果我去:website.com/show/9999/?n=page-name.
我做错了什么?
更新
404 问题is now solved。
但是,现在我需要重定向旧的查询字符串 URL:
website.com/show/?id=9999&n=page-name
到新的 SEO 友好 URL:
website.com/show/9999/page-name
如何设置重定向?
【问题讨论】:
标签: php wordpress .htaccess mod-rewrite url-rewriting