我已经将 wordpress 安装在名为欢迎, 和/欢迎/样品是一个“页面”(通过 Wordpress 创建)。它有一个 php 模板,等待 $_REQUEST['category']
当用户访问 /welcome/samples/乐趣,我想将“fun”以 welcome/samples/ 的形式传递给示例 php 模板?类别=乐趣
但我希望 URL 保持其原始形式 - 它目前用丑陋的“?cat ...等”替换它
# Outside the wordpress block so it won't be overwritten
Options +FollowSymlinks
RewriteEngine On
RewriteRule ^samples/([^/]+)$ /welcome/samples?cat=$1 [R,L]
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /welcome/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /welcome/index.php [L]
</IfModule>
# END WordPress
我尝试使用 simply 重写samples?cat=$1
,但得到了 404。我尝试在第一个块中放入RewriteBase /welcome/
。没有 [R] 标志,它根本不起作用。我不断尝试不同的排列……但都失败了 :(
也许我遗漏了一些基本概念......如果您能花时间阅读本文,我将不胜感激:)
再见
答案1
这似乎对我有用:
RewriteRule ^welcome/samples/([^/]+)$ /welcome/samples?cat=$1
我注意到你正在匹配,^samples…
但实际上还没有RewriteBase
,所以你需要匹配更多(^welcome/samples…
)