我有一个问题,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"
并使用上面的代码给我许多重定向...
感谢您有时间查看此内容。
答案 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]