在我现有的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
答案 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
此选项是必需的,因为问题说明了一件事,同一问题中包含的规则(?)显示了其他内容。我们这次坚持问题中的例子。
将上述规则集中的最后3行替换为以下几行:
# /at/ folder rule
RewriteCond %{QUERY_STRING} !h= [NC]
RewriteRule ^at/([^/]+)/? /at/?h=$1 [NC,L]
以静默方式映射此请求的网址:
http://websitename.com/at/anything
到这一个:
http://websitename.com/at/?h=anything