【发布时间】:2012-06-20 20:24:17
【问题描述】:
我的 wordpress 博客安装在 domain.com/blog,我有一个页面,其子页面的结构类似于 domain.com/blog/page 和 domain.com/blog/page/subpage。
我希望我的访问者能够转到 domain.com/subpage 并查看 domain.com/blog/page/subpage 的内容,而不会被外部重定向到该 URL,避免 wordpress 永久链接重写。
我尝试使用 RewriteRule ^subpage$ /page/subpage [L] 并且正在提供内容,但网址看起来像 domain.com/blog/page/subpage(我猜 Wordpress 永久链接正在获取它。)
.htaccess:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
// tried inserting my code here.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress
编辑:
这些日志显示页面访问活动 -
ip - - [19/Jun/2012:14:03:53 -0400] "GET /subpage/ HTTP/1.1" 301 - "http://domain.com/referrer/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1"
ip - - [19/Jun/2012:14:03:53 -0400] "GET /blog/page/subpage/ HTTP/1.1" 200 20022 "http://domain.com/referrer/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101 Firefox/13.0.1"
另外,这是我的根 .htaccess -
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^subpage/?$ /blog/page/subpage/ [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
RewriteCond %{HTTP_HOST} ^domain.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.domain.com$
【问题讨论】:
-
尝试在
RewriteBase /blog/之前插入您的代码 -
同样的问题 - 内容加载,但 url 仍然是
/blog/page/subpage/ -
出于好奇,如果您将规则的正则表达式更改为:
^subpage/$? -
与提到的结果相同
标签: wordpress .htaccess mod-rewrite permalinks