使用wordpress永久链接忽略网址前缀

时间:2012-04-26 13:33:26

标签: wordpress mod-rewrite permalinks

我正在尝试设置一个htaccess规则,该规则将适用于我当前的永久链接结构。

我目前的永久链接结构就是这个

/%category%/%postname%/

我的htaccess如下

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>

一个典型的网址是

/博客/ post_category_name / POST_NAME /

哪一切都运作良好。我面临的问题是用户能够更改他们的语言环境,而这些语言环境又在url前面加上区域cod,如下所示。

/ UK /博客/ post_category_name / POST_NAME /

现在的问题是WP将博客作为类别,将post_category_name作为帖子名称,然后在WP中抛出404。

基本上我想完全忽略区域代码,这可能吗?

我还应该补充一点,即uk(或任何其他区域)目录不存在,

由于

1 个答案:

答案 0 :(得分:2)

如果要捕获uk/文件夹,则必须在根目录中执行此操作。把它放在根.htaccess(你可以检查!-f和!-d,如果你想确定它不是一个目录/文件)..这将允许你从查询中抓取国家代码字符串。

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^([a-zA-Z]{2})/blog/(.*) /blog/$2?ccode=$1 [L,QSA]
</IfModule>

您也可以忽略国家/地区代码:

<IfModule mod_rewrite.c>
 RewriteEngine On
 RewriteBase /
 RewriteRule ^([a-zA-Z]{2})/blog/(.*) /blog/$2 [L]
</IfModule>

不确定这是否会改变WP中的内容(不确定它们如何处理URL)。你必须检查。