Wordpress页面网址用htaccess重写

时间:2013-03-24 07:28:11

标签: wordpress .htaccess

在我现有的wordpress网站上,我有一个页面设置,其中包含特定页面的自定义模板文件。 Wordpress永久链接根据slug / at /

重写此页面

然后,我们使用一些额外的变量来获取此页面上的不同数据

http://websitename.com/at/?h=s3fgh

并且现在想用htaccess重写这个url到这样的

http://websitename.com/at/s3fgh

但似乎无法使其发挥作用。目前我试图修改htaccess文件但没有首选结果

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule ^at/([a-zA-Z0-9_-]+)/?$  /index.php?page_id=113&h=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

其中113等于特定页面ID

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下内容替换问题中的完整规则集:

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# Add this line
RewriteCond %{REQUEST_URI}   !/at/  [NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

# /at/ folder rule
RewriteCond %{REQUEST_URI}   !index\.php                [NC]
RewriteRule ^at/([^/]+)/?   /index.php?page_id=113&h=$1 [NC,L]

上一条规则默默映射此请求的网址:

http://websitename.com/at/anything

根据问题中的规则,

到这一个:

http://websitename.com/index.php?page_id=113&h=anything

OPTION

此选项是必需的,因为问题说明了一件事,同一问题中包含的规则()显示了其他内容。我们这次坚持问题中的例子。

将上述规则集中的最后3行替换为以下几行:

# /at/ folder rule
RewriteCond %{QUERY_STRING} !h=        [NC]
RewriteRule ^at/([^/]+)/?   /at/?h=$1  [NC,L]

以静默方式映射此请求的网址:

http://websitename.com/at/anything

根据问题中的URL示例,

到这一个:

http://websitename.com/at/?h=anything