我已经安装了一个具有投资组合功能的WP主题 - 这创建/技能(用于类别)和/ portfolio(用于条目)。通过对代码进行搜索并将“技能”的每个实例更改为“射击”,有可能“破坏”我不理解的东西,是否有办法将mod_rewrite更改/技能转换为其他内容并将其显示为此类(甚至虽然实际的“静态网址”仍然是技能?
当前层次结构:
[点击婚礼中的投资组合条目]
理想情况下:
非常感谢任何帮助。
当前代码:
# 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 /
答案 0 :(得分:0)
当前规则的工作方式,/shooting/weddings
的请求将发送到行RewriteRule . /index.php [L]
中的index.php,后续行将不会被读取。如果您将行RewriteRule ^shooting/(.*)$ /skills/$1
向上移动到两个RewriteCond
行之上并将其修改为读起来就像我刚写的那样,这应该使/shooting/weddings
默默地重写为/skills/weddings
,这会然后被送到index.php。
编辑:更新了以下规则。最初我认为你只是想添加/拍摄以响应/技能,现在它做,但现在我认为你也希望有人加载/技能被重定向到/拍摄。技能RewriteRule将所有/技能流量重定向到/射击。一旦用户被重定向,他们就会点击射击RewriteRule,它会默默地将它们重写为/技能,然后由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