htaccess重写问题,用于修改url结构和重定向回

时间:2018-09-26 13:06:20

标签: .htaccess mod-rewrite url-rewriting

我有以下代码:

RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ 
index.php?pageid=$1&pageid=$2&pageid=$3 [NC,L] 
RewriteRule ^([A-Za-z0-9-]+)/([A-Za-z0-9-]+)/$ index.php? 
pageid=$1&pageid=$2 [NC,L] 
RewriteRule ^([A-Za-z0-9-]+)/$ index.php?pageid=$1 [NC,L] 

这将导致以下情况发生:

例如,当有人输入https://www.thegoodmarketer.co.uk/contact-us/时,它会加载以下页面https://www.thegoodmarketer.co.uk/index.php?pageid=contact-us

我想要实现的目标:

  1. 当有人输入https://www.thegoodmarketer.co.uk/index.php?pageid=contact-us时,我希望它自动重定向到正确的URL结构:https://www.thegoodmarketer.co.uk/contact-us/

所有页面都一样。

我已经尽力理解htaccess了,但是我无法理解它!

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

下面尝试用它作为您网址的一个示例,并在内部重定向规则上使用end标志以防止递归重定向。

RewriteCond %{REQUEST_URI} ^/index.php
RewriteCond %{QUERY_STRING} ^pageid=([^/]+)$
RewriteRule ^ /%1 [QSD,R]

RewriteRule ^([A-Za-z0-9-]+)/$ index.php?pageid=$1 [NC,L,END]