。htaccess文件正在工作,但会导致不断刷新/重定向

问题描述 投票:1回答:1

我已根据教程更改了.htaccess,以隐藏.php文件扩展名和$ _Get from URL,但页面仍在继续跳转。

我已经尝试了许多.htaccess更改,这是唯一可以部分运行的更改。但是,这似乎导致不断的重定向/刷新。

RewriteEngine on

RewriteBase /

RewriteCond %{HTTP:X-Forwarded-Proto} =http

RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME}\.php -f

RewriteRule ^(.*)/([0-9a-zA-Z_-]+) $1.php?name=$2 [NC,L]

希望将"profile.php?name=company-name"更改为"profile/company-name",而页面的外观或功能没有任何不同。某些$_Get动态内容正在加载,但整个页面仍在跳过,并且CSS样式均无效。

php apache .htaccess lamp
1个回答
1
投票

用此替换所有规则:

RewriteEngine on    
RewriteBase /

RewriteCond %{HTTPS} !on
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^ https://%{HTTP:Host}%{REQUEST_URI} [L,R=301,NE]

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([\w-]+)/?$ $1.php?name=$2 [QSA,L]

请确保在新的浏览器中测试此更改,以避免旧的浏览器缓存。

对于您的css / js / issues,请将其添加到页面HTML的<head>标签下面:

<base href="/" />

这样,每个相对URL都从该基本URL而不是当前页面的URL解析。

© www.soinside.com 2019 - 2024. All rights reserved.