我正在尝试在我的网站上使用漂亮的网址。我想重定向
example.com/page-title/ to example.com/?q=page-title
以下.htaccess代码工作正常,但由于[R]标志,它执行HTTP重定向:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)/*$ https://www.example.com/?q=$1 [L,R]
显然我想进行内部重定向,但当我删除[R]标志时,它会进入重定向循环。
答案 0 :(得分:1)
问题似乎是你的目标中有http://
。即使没有R
标记,如果Apache看到目标中包含http://
或https://
的完整网址,那么它会使用R=302
执行完全重定向。
您可以使用规则:
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.+)$ /?q=$1 [L,QSA]