.htaccess将变量重定向到友好链接 - 许多重定向

时间:2017-06-15 12:32:49

标签: .htaccess variables redirect clean-urls

我有一个问题,htaccess将变量重定向到清理网址。

代码:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) index.php?page=$1 [R]

RewriteCond %{QUERY_STRING} ^page=about$ 
RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L]

我只是想重定向一下:"?page = about"对此:" / about"

并使用上面的代码给我许多重定向...

感谢您有时间查看此内容。

2 个答案:

答案 0 :(得分:0)

所以我在本地服务器上的空目录中尝试了你的代码。

这很好用:

<IfModule mod_rewrite.c>
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule (.*) index.php?page=$1 [R]

    RewriteCond %{QUERY_STRING} ^page=about$ 
    RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L]
</IfModule>

但是当我注释掉这行代码RewriteEngine on时。所以用这条线尝试你的代码,它应该可以正常工作。

答案 1 :(得分:0)

完整的代码。

#Rewrite settings
Options +FollowSymlinks
RewriteEngine on

RewriteCond %{HTTPS} !on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

RewriteCond %{HTTP_HOST} ^url.com [NC]
RewriteRule ^(.*)$ https://www.url.com/$1 [L,R=301]

#Remove index.php from url
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ index.php?p=$1 [L]

#RewriteCond %{QUERY_STRING} ^p=about$ 
#RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L]

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L]

这段代码被评论,因为这样不起作用:

#RewriteCond %{QUERY_STRING} ^p=about$ 
#RewriteRule ^(.*)$ https://www.url.com/about? [R=301,L]