0

我已经安装了一个具有投资组合功能的 WP 主题 - 这会创建 /skills(用于类别)和 /portfolio(用于条目)。冒着“破坏”我不理解的东西的风险,我通过浏览代码并将“技能”的每个实例更改为“射击”,有没有办法让 mod_rewrite 将 /skills 更改为其他东西并显示它(甚至虽然实际的“静态网址”仍然是技能?

当前层次结构:

  • /技能
  • /技能/婚礼
  • /技能/爆头

[点击婚礼中的投资组合条目]

  • /投资组合/约翰简

理想情况下:

  • /射击/
  • /拍摄/婚礼
  • /射击/爆头

任何帮助将不胜感激。

当前代码:

# 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]
RewriteRule /shooting/(.*)$ skills/$1 [L]
</IfModule>
# END WordPress

我相信它们都需要正常工作,因为 WP 将继续在内部链接到 /skills/

4

1 回答 1

0

您当前规则的工作方式,请求/shooting/weddings将被发送到 index.php 中的行RewriteRule . /index.php [L],并且不会读取后续行。如果你将这条线移到RewriteRule ^shooting/(.*)$ /skills/$1两行之上RewriteCond并修改它以像我刚刚写的那样阅读,那应该会/shooting/weddings默默地重写为/skills/weddings,然后将其提供给 index.php。

编辑:更新了以下规则。最初我以为您只是想添加 /shooting 以与 /skills 做出相同的响应,现在它会这样做,但现在我认为您还希望将加载 /skills 的人也重定向到 /shooting。技能 RewriteRule 将所有 /skills 流量重定向到 /shooting。一旦用户被重定向,他们就会点击 RewriteRule,它会默默地将他们重写到 /skills,然后被 WordPress 接收。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^skills/(.*)$ /shooting/$1 [R=301,L]
RewriteRule ^shooting/(.*)$ /skills/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
于 2013-02-01T23:35:14.653 回答